2015-11-17 37 views
0

我創建一個測試,以檢查下拉列表的值文本值,但是當過我打電話硒不會找到下拉

new SelectElement(Driver.FindElement(By.XPath("//table[@id='tblListUserSearch']/tbody/tr/td[5]/div/select"))); 

它拿起下拉列表和所有withing的DDL的物品,但是當試圖使選項文本始終爲空/空。

我也爲此下拉菜單使用了SumoSelect Jquery插件。如果我要停止使用這個上面的行刪除'選擇'之前的'div',似乎工作。

我錯過了什麼,或者它可能只是硒不喜歡JQuery插件?

編輯 這裏是我的測試

Selenium.Open("/ListUserStatus.aspx"); 
Selenium.WaitForPageToLoad("30000"); 
Thread.Sleep(2000); 
var mySelect = new SelectElement(Driver.FindElement(By.XPath("//table[@id='tblListUserSearch']/tbody/tr/td[5]/div/select"))); 
var options = mySelect.Options; 

編輯19/11/2015 這裏是我的HTML創建

<td style="padding: 3px;"> 

         <div class="SumoSelect" tabindex="0"><select style="display: none;" id="testCase" class="SlectBox dropDown clearDropDown" multiple="multiple" data-bind="selectedOptions: selectedPage "> 
         <!-- ko foreach: PageAccess --> 
         <!-- ko if: $root.getPriviledges($data) != false --> 
         <option value="25" data-bind="text: $data.PageAccess, value: $data.PageAccessID">SPID Search</option> 
         <!-- /ko --> 

         <!-- ko if: $root.getPriviledges($data) != false --> 
         <option value="37" data-bind="text: $data.PageAccess, value: $data.PageAccessID">Submit Transaction</option> 
         <!-- /ko --> 

         <!-- /ko --> 
        </select><p class="CaptionCont SlectBox"><span class="placeholder">Please Select...</span><label><i></i></label></p><div class="optWrapper multiple"><p class="select-all"><span><i></i></span><label>Select All</label></p><ul class="options"><li data-val="25"><span><i></i></span><label>SPID Search</label></li><li data-val="37"><span><i></i></span><label>Submit Transaction</label></li></ul><div class="MultiControls"><p class="btnOk">OK</p><p class="btnCancel">Cancel</p></div></div></div> 


       </td> 

的開頭代碼正如你看到的我也是使用Knockout.JS綁定下拉列表中的數據。在此之後,我有一個簡短的JS腳本將SumoSelect應用到下拉列表中。下面

$('.dropDown').each(function() { 
      $(this).SumoSelect(
      { 
       placeholder: 'Please Select...', 
       selectAll: true 

      }); 
     }); 

腳本一旦這個腳本應用於其創建的DIV <div class="SumoSelect" tabindex="0">。這似乎是造成這個問題的原因,因爲使用硒似乎對WebDrivers不可見。

邊注 當使用火狐硒插件和記錄我的步驟和重放來,它的編碼它不喜歡它

+0

您可以發佈HTML代碼或鏈接嗎?所以我們可以幫助你 –

回答

1

不知道測試時,是否能夠找到DDL,並單擊但如何你網站的代碼看起來像,但我設法從下拉菜單中選擇文本,如下所示:

IWebElement TestDropDown = Driver.FindElement(By.XPath("//table[@id='tblListUserSearch']/tbody/tr/td[5]/div/select")); 
string[] seperator = {"\n", "\r"}; 
string dropdownText = TestDropDown.Text; 
string[] dropdownOptions = dropdownText.Split(seperator, StringSplitOptions.RemoveEmptyEntries); 
0

我試圖與已與jQuery插件實現的下拉菜單。希望這可以幫助你。 final Select droplist = new Select(driver.findElement(By .xpath("xpath-expression"))); List<WebElement> oSize = droplist.getOptions(); int iListSize = oSize.size(); System.out.println("No.of list size is ......" + iListSize); for (int i = 0; i < iListSize; i++) { System.out.println("i value is..." + i); droplist.selectByIndex(i); String sValue = droplist.getOptions().get(i).getText(); System.out.println(sValue);