2016-02-02 34 views
2

是代碼選擇UL下存在一個列表項,我要選擇的第一個列表項I,E VAN。如何在硒的webdriver下面

<Div class="btn-group col-xs-12 noSidePad"> 
<button id="equipment-dropdown-btn" class="btn strip-radius btn-default dropdown-toggle col-xs-10 noSidePad" data-bind="html: selectedEquipment(), css: {'has-error' : $parent.errorMessage() && selectedEquipment() == 'Select...'}" aria-expanded="false" data-toggle="dropdown" type="button">Flatbed</button> 
<button class="btn btn-default equipt-toggle dropdown-toggle col-xs-2 noSidePad" aria-expanded="false" data-toggle="dropdown" type="button"> 
<span class="caret"></span> 
<span class="sr-only">Toggle Dropdown</span> 
</button> 
<ul id="equipmentType" class="dropdown-menu" data-bind="foreach: equipmentTypeResults" role="menu"> 
<li> 
<a data-bind="text: EquipmentName, click: $.proxy($parent.populateEquipment, $parent), attr: { 'data-itemtype': ResultType.toLowerCase(), 'data-equipid': EquipmentTypeId }" href="javascript:void(0);" tabindex="-1" role="menuitem" data-itemtype="parent" data-equipid="6">**Van**</a> 

我被卡住了,應該先確定下拉字段,然後選擇列表。

在這個問題上的任何幫助或鉛是極大的讚賞。

回答

0

第一次嘗試下面的XPath

//ul[@id='equipmentType']/li/a[contains(.,'**Van**')] 

如果有這個值,那麼是的,你需要點擊該下拉第一

driver.findElement(YOUR Locator)).click(); 
List<WebElement> options = select.findElements(By.xpath("//ul[@id='equipmentType']/li")); 
for (WebElement option : options) { 
    if("**Van**".equals(option.getText())) 
    option.click(); 
} 

希望它會幫助你:)

其中一個下拉
0

您會被要求先單擊下拉按鈕,你可以與XPath得到顯示(或切換)選擇列表

driver.findElement(By.Xpath(".//button[//span[text()='Toggle Dropdown']]")).click();

然後

driver.findElement(By.Xpath(".//ul[@id='equipmentType']//[text()='**Van*']")).click();

可以代替**Van**使用其他值,使之更加通用的