无法从Selenium和Java中的下拉列表中选择

时间:2016-07-18 14:15:28

标签: java html selenium selenium-webdriver drop-down-menu

我理解如何使用selectByIndex方法从下拉列表中选择元素。但是,当我尝试在以下HTML代码段上执行selectByIndex(select.selectByIndex (index))时:

<select id="destinationAllocationId" name="destinationAllocationId">
<optgroup label="Anywhere Virtual Cards">
<option value="1555555555f0a19">NNN0 [*-2453]</option>
<option value="1555555555f0519">NNN1 [*-8354]</option>
<option value="155555555550419">NNN2 [*-5765]</option>
<option value="155555555520919">NNN3 [*-8875]</option>
</optgroup>
</select>
</div>

我无法维持所选的选项。

首先它似乎工作(下拉菜单打开,正确的选项在蓝色中突出显示)。但是,一旦程序继续执行(与下拉列表无关),dro pdown将恢复为原始状态(默认选项)。

换句话说,最初程序选择合适的选项就好了但它会自动恢复为默认选项,并且在下拉菜单消失后实际上不会更改下拉列表中的值(通常当我手动选择一个选项时)我可以看到在下拉菜单关闭时选择了该选项,但在这种情况下,只要下拉列表打开,选项就会被选中,但一旦关闭,就会选择默认选项)

为什么会发生这种情况的任何想法

1 个答案:

答案 0 :(得分:0)

我也有这个问题

这就是我解决它的方式

/**
 * helper method for handling drop downs
 * @param idPrefix the id of the drop down without any _xy
 * @param value the value to be selected
 */
public void clickDropdown(String idPrefix, String value) {
    // find & click on the label element of the drop down
    firefoxDriver.findElement(By.id(idPrefix + "_label")).click();
    // find & choose element from drop down
    firefoxDriver.findElement(By.xpath("//div[@id='" + idPrefix + "_panel']/div/ul/li[text()='" + value + "']")).click();
}
你这样称呼它:

// choosing an element in the drop down menu
clickDropdown("projectForm:stellvertreter", "StringToSelect");

这是我写的与primefaces一起使用,无论如何你必须修改它,但你明白了

关于选择和还原的问题...尝试按回车键按下所选项目或再次点击它...没有用我的方法