【发布时间】:2014-04-15 13:29:52
【问题描述】:
工具:Selenium Webdriver
我正在尝试单击下拉列表中的特定值。我可以通过以下方式做同样的事情:
HTML sn-p:通过“选择”属性
<select class="regionpicker-state span3 ng-valid ng-dirty" ng-change="updateSelection()" ng-options="a.code as a.name for a in state" ng-model="selectedState">
<option class="" value="">Select</option>
<option value="0">Karnataka</option>
<option value="1">Tamil Nadu</option>
</select>
自动化选项 1:通过“选择”属性
@FindBy(xpath = ".//*[@id='organization_chosen']/a/span")
public static WebElement organizationExpand;
new Select(organizationExpand).selectByVisibleText("abc");
但是,如果代码具有“选择”属性,则上述“选项 1”代码有效。
如果开发人员使用“bootstrap dropdown”方法对下拉列表进行编码怎么办?
HTML sn-p:通过“引导下拉”方法:
<select id="organization" class="focused" data-placeholder="Choose a organization..." name="organization" style="display: none;">
<div id="organization_chosen" class="chosen-container chosen-container-single chosen-container-active" style="width: 220px;" title="">
<a class="chosen-single chosen-default" tabindex="-1">
<div class="chosen-drop">
<div class="chosen-search">
<ul class="chosen-results">
<li class="active-result" data-option-array-index="1" style="">Demo</li>
<li class="active-result" data-option-array-index="2" style="">abc</li>
<li class="active-result" data-option-array-index="3" style="">def</li>
<li class="active-result" data-option-array-index="4" style="">xyz</li>
</ul>
【问题讨论】:
-
从我从html sn-p 中看到的,您可以通过单击倒三角形直接打开底层下拉列表。然后通过直接点击 xpath 来识别 li 元素。
标签: drop-down-menu selenium-webdriver