list - 错误:尝试从 selenium 中的列表下拉列表中进行选择时出现此异常“选项元素不在选择中”
问题描述
我一直在尝试从列表下拉列表中选择一个元素(而不是选择下拉列表)。每次我尝试这个时,selenium 都能够使用 xpath 定位元素,但它不会单击元素。相反,它会抛出一个异常,上面写着:
org.openqa.selenium.JavascriptException: javascript error: option element is not in a select
HTML:
<list id="cmds" class="dropdown-menu">
<option value="{YEAR}">{YEAR}</option>
<option value="{DAY}">{DAY}</option>
<option value="{HOME}">{HOME}</option>
</list>
解决方案
首先,您需要单击下拉菜单。然后使用下面的 xpath 返回 WebElements 列表(下拉值)并使用 for 循环您可以单击任何下拉值。
//list[@id='cmds']/option
Java中的示例代码:
WebElement dropDown = driver.findElement(By.xpath("enter xpath for the dropdown"));
dropDown.click();
List<WebElement> valuesInDropDown = driver.findElements(By.xpath("//list[@id='cmds']/option"));
for (WebElement value : valuesInDropDown) {
if (value.getText().equals("{YEAR}"))
value.click();
}
推荐阅读
- openimageio - 编译 Cycles 渲染器时缺少 OpenImageIO_d.lib
- python - 添加最后一行代码会导致此错误:“in get_loc raise KeyError(key) from err”。是什么导致了这个错误?
- python - 当我尝试运行 python manage.py runserver 时出现此错误
- git - _b00t_ 问题:如何在 Visual Studio 代码中拖放(*移动)文件,而不擦除 git 历史记录?(即 git mv 拖放)
- sockets - 如果套接字握手中的客户端证书中有两个有效证书,则在 SSL 连接中使用哪个证书
- php - 使用 Sendgrid 处理时事通讯发送的最佳方法是什么
- reactjs - 如何使用材质 UI(React)创建评分栏(或线性仪表)
- postgresql - SSH 到拒绝启动的 docker 容器
- angular - 使用 nbpopover 将参数传递给 ng-template 不足
- android - 颤振应用程序仅在 6 分钟不活动后才失去背景,屏幕在 Android 上关闭