【问题标题】:Unable to Select From Dropdown By Index in Selenium and Java无法在 Selenium 和 Java 中按索引从下拉列表中选择
【发布时间】:2016-11-21 04:42:49
【问题描述】:

我了解如何使用 selectByIndex 方法从下拉列表中选择一个元素。但是,当我尝试在以下 HTML sn-p 上执行 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>

我无法保留所选选项。

起初它似乎可以工作(下拉菜单打开,正确的选项以蓝色突出显示)。但是,只要程序继续执行(与下拉菜单无关的内容),下拉菜单就会恢复到原始状态(默认选项)。

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

发生这种情况的任何想法

【问题讨论】:

  • 您是否可能在重置此下拉列表的页面上设置其他值?例如,一些下拉列表填充/重置其他。您能否发布更多有关设置选项的代码。似乎有什么奇怪的事情正在发生。我使用 Java/Selenium,但我不记得曾经看到过打开下拉菜单...通常只是在不打开下拉菜单的情况下设置值。

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


【解决方案1】:

我也有这个问题

我就是这样解决的

/**
 * 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的,无论如何你都必须修改它,但你明白了

对于选择和还原的问题...尝试向所选项目发送回车键按下或再次单击它...我的方法没有这个

【讨论】:

    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2022-10-13
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多