我創建一個測試,以檢查下拉列表的值文本值,但是當過我打電話硒不會找到下拉
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不可見。
邊注 當使用火狐硒插件和記錄我的步驟和重放來,它的編碼它不喜歡它
您可以發佈HTML代碼或鏈接嗎?所以我們可以幫助你 –