java - 如何在 Selenium WebDriver Java 中选择下拉值
问题描述
在发布之前,我研究了整个 stackoverflow 来解决这个问题,但找不到解决方案,因为它们中的大多数都提供了与 Select 类相关的解决方案。我确实遇到但没有解决我的问题的一些链接如下,
- 如何使用 Java 在 Selenium WebDriver 中选择下拉值
- 如何使用 Testng 在 selenium webdriver 中选择下拉值?
- 如何从 selenium webdriver 中的 span 中选择下拉选项
- Selenium WebDriver:处理下拉菜单
- 在 selenium webdriver 中选择下拉菜单
我有 6 个下拉菜单,它们具有相同的下拉列表和相同的 HTML 标签。我无法从每个下拉菜单中选择值。下拉菜单之一如下所示,
我有带有动态 div id 的 HTML,
我选择其中一个选项的 xpath 为 -> //li[text()='No Problems']。下面的方法确实点击了下拉菜单,但未能点击没有问题。我无法使用 Select 类,因为 DOM 没有选择标签。
以下是我尝试选择下拉选项的两种不同方法,
请帮助如何克服这种情况并选择下拉列表选项。
解决方案
// click on that place holder
driver.findElement(By.xpath("....')).click();
// then store all results which are inside box by list classes in selenium
List <WebElement> lists=driver.findElements(By.xpath("//ul[@role='list box']//li"));
System.out.println(lists.size());
for (int i = 0; i < lists.size(); i++) {
//System.out.println(LIST.get(i).getText());
// checking that text by for loop and pick
if (lists.get(i).getText().contains("No Problems")) {
lists.get(i).click();
break;
}
推荐阅读
- flutter - 当 onPressed 在 BottomAppBar 图标项上时如何为孩子替换一个小部件
- unity3d - 如何从两个下拉列表中获取值并将它们与 if 进行比较?
- javascript - 如何比较午夜和其他指定时间之间的时间
- linux - 对可以循环遍历值的变量执行 if 选择语句?
- .net - F# - Int32.TryParse 的部分应用
- python-3.x - 使用 ConfigParser 时在配置文件中保留驼峰式大小写和注释
- javascript - 方括号前的逗号 - MDN 文档
- sqlite - sqflite batch.commit() 不适用于颤振
- networking - 如何使在 Virtual Box 中运行的应用程序可通过公共互联网访问
- for-loop - Kotlin For 循环,有点困惑