我喜欢这样下拉HTML
<div id="dk_container_ddlGuestGender" class="dk_container dk_theme_default" tabindex="0">
<a class="dk_toggle" style="width: 100px;">
<span class="dk_label">Female</span>
</a>
<div class="dk_options" style="top: 21px;">
<ul class="dk_options_inner">
<li class="" style="">
<a data-dk-dropdown-text="Male" data-dk-dropdown-value="1">Male</a>
</li>
<li class="dk_option_current">
<a data-dk-dropdown-text="Female" data-dk-dropdown-value="2">Female</a>
</li>
</ul>
</div>
<select id="ddlGuestGender" name="ddlGuestGender" style="display: none;">
<option value="1">Male</option>
<option value="2">Female</option>
</select>
</div>
如何识别dropkick下拉元素并选择下拉列表中可用的值。我的代码如下
WebElement genderdropdown= driver.findElement(By.xpath("//select[@id='ddlGuestGender']"));
Select selgender=new Select(genderdropdown);
selgender.selectByValue("2");
答案 0 :(得分:0)
最简单的是:
(JavascriptExecutor)driver.executeScript("document.getElementById('ddlGuestGender').selectedIndex = 1;");
或者可能:
(JavascriptExecutor)driver.executeScript("document.getElementById('ddlGuestGender').value = 2;");
答案 1 :(得分:0)
对于dropkick下拉列表,您应使用以下代码,这将起作用
JavascriptExecutor excutor=(JavascriptExecutor) driver;
excutor.executeScript("$('#ddlGuestGender').dropkick('select', '2')");
答案 2 :(得分:0)
为了在不执行Javascript的情况下自动执行dropkick下拉列表,我使用了:
dropdown = driver.find_element(:id, "dk_container_ddlGuestGender").find_element(:class, "dk_toggle")
dropdown.click
1.times { dropdown.send_keys(:arrow_down) } # for male
2.times { dropdown.send_keys(:arrow_down) } # for female
dropdown.send_keys(:enter)
这些是Ruby绑定,但您应该能够轻松地更改为Java。
对于包含更多值的列表,我创建了一个索引的哈希 - &gt; name_of_value,并使用它来确定要发送到下拉列表的向下箭头数。