2016-02-02 35 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**使用其他值,使之更加通用的