java - 无法从带有 java 的 selenium webdriver 的下拉列表中选择选项
问题描述
我正在尝试从下拉列表中选择一个值。我检查了所有与之相关的帖子,但找不到解决方案。
这是我的下拉列表的 HTML 代码:
<select class="select2 visible" data-val="true" data-val-number="The field ClientId must be a number." id="ClientId" name="ClientId" tabindex="-1" title="" style="display: none;">
<option value="">Client</option>
<option value="22">ABC</option>
<option value="7">ABC1</option>
<option value="18">ABC2</option>
<option value="27">ABC3</option>
<option value="26">ABC4</option>
<option value="31">ABC5</option>
<option value="12">ABC6</option>
<option value="19">ABC7</option>
<option value="72">DGX Client</option>
<option value="57">DS Sampler</option>
<option value="25">Group123</option>
</select>
我在 Selenium Webdriver 中编写的用于获取值的代码:
@FindBy(id="ClientId")
WebElement clientDropDown;
waitTime = new WebDriverWait(driver,20);
waitTime.until(ExpectedConditions.visibilityOf(clientDropDown));
Select client=new Select(clientDropDown);
client.selectByVisibleText("DGX Client");
错误:org.openqa.selenium.TimeoutException:预期条件失败:等待 [[ChromeDriver: chrome on XP (6fa8cbb25476bea9b789aff19a6edf)] -> id: ClientId] 的可见性(尝试 30 秒,间隔 500 毫秒)
解决方案
在此假设下运行。
看看你的风格select
是如何隐藏的:display: none
<select ... style="display: none;">
^^^^^^^^^^^^^^^^^^^^^
我认为这是因为它实际上在 UI 上以不同的方式表示,并且select
每当实际的下拉表示发生变化时,这是由 javascript 在幕后操纵的。
如果是这种情况,您可以检查实际下拉列表的外观并使用click()
命令组合打开下拉列表并选择所需的选项(请注意,在这种情况下您将无法使用Select
类,因为它旨在仅用于select
元素)。
或者,您可以使select
元素可见并继续:
String js = "arguments[0].style.display='block'";
((JavascriptExecutor) driver).executeScript(js, clientDropDown);
Select client = new Select(clientDropDown);
client.selectByVisibleText("DGX Client");
推荐阅读
- c# - 使用 Unity 的 FPS GAME 按钮中的暂停菜单问题
- python - Python 线程子类:__init__ 未调用
- r - 使用 `cbind()` 时,“相同”输入会触发不同的行为:从短变量中找到行名并已被丢弃
- javascript - Node.js ReadStream 在管道到 Hash 时卡在 Electron 上
- php - 自动包括定义('BASEPATH')或退出('不允许直接脚本访问');
- python - 类型错误:barh() 为参数“宽度”获取了多个值
- if-statement - 在 Google 表格中计算折线图的斜率时反转列
- php - 如何从生成的 json 中获取单独的键和值?
- express - 尝试使用 express 中间件来服务第三方 API 请求
- javascript - 如何自动为已经结构化的图片库制作动画?