selenium - 无法使用选择从下拉列表中选择值
问题描述
我正在尝试在“设备”下拉列表中选择一些值,但出现错误 - 元素不是难以处理的:元素当前不可见,可能无法操作
我们正在为我们的应用程序使用淘汰赛 js。下拉菜单甚至没有打开。
I am using xpath - "//select[@class='deviceType']"
我可以使用 webdriver 等待这意味着 xpath 没有问题,但我无法在下拉列表中选择值
Select device = new Select(deviceDrpDwn);
device.selectByVisibleText(deviceOption);
这是我用来选择下拉值的代码。下拉菜单未打开。
HTML code:
<div class="span9 select-device">
<!-- ko if: sdeviceConfigMap -->
<label data-bind="text: ovd.ui.admin.hart.device">Device (Manufacturer ID, Device Type, User Extension, Characterization)</label>
<select tabindex="16" class="deviceType" data-bind="value: sselectedDeviceConfig,
optionsCaption : ovd.ui.admin.hart.selectDevice,
options: sdeviceConfigMap,
optionsText: 'name',
optionsValue: 'config_id',
event: { change: associateConfigWithValve}"><option value="">Select Device</option><option value="20">Dresser Masoneilan, SVI II AP / H7, initial, Linear</option><option value="21">Dresser Masoneilan, SVI II AP / H7, initial, Equal % (30)</option><option value="22">Dresser Masoneilan, SVI II AP / H7, initial, Quick Opening</option><option value="23">Dresser Masoneilan, SVI II AP / H7, initial, Linear</option></select>
<!-- /ko -->
</div>
解决方案
您的元素在 Webdriver 交互时不可见。请等待元素可见。
WebDriverWait wait=new WebDriverWait(driver,40);
Select select=new Select(wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//select[@class='deviceType']"))));
select.selectByIndex(1); //n=1,2...n
或 select.selectByVisibleText(arg0);
推荐阅读
- python - Python-Arduino-Nano 连接?
- postgresql - 使用 gnatcoll_db2ada 将架构中的数组类型用于到 postgresql 数据库的 Ada 接口
- json - 在pyspark中将JSON对象数组转换为字符串
- python - Ubuntu 上 Python 中的长路径
- php - 如何重定向表单提交
- aws-cdk - 具有多个应用程序存储库的 CDK 管道
- android - 为什么recyclerview数据只有在第二次点击按钮时才加载
- elixir - Ecto Migrations 指定排序规则
- angular - 如何使用 Angular 消除 Spring Boot 中的 CORS 错误?
- reactjs - 使用 react-cookie 创建、更新和删除 Cookie 的问题