首页 > 解决方案 > 如何在 Selenium WebDriver Java 中选择下拉值

问题描述

在发布之前,我研究了整个 stackoverflow 来解决这个问题,但找不到解决方案,因为它们中的大多数都提供了与 Select 类相关的解决方案。我确实遇到但没有解决我的问题的一些链接如下,

  1. 如何使用 Java 在 Selenium WebDriver 中选择下拉值
  2. 如何使用 Testng 在 selenium webdriver 中选择下拉值?
  3. 如何从 selenium webdriver 中的 span 中选择下拉选项
  4. Selenium WebDriver:处理下拉菜单
  5. 在 selenium webdriver 中选择下拉菜单

我有 6 个下拉菜单,它们具有相同的下拉列表和相同的 HTML 标签。我无法从每个下拉菜单中选择值。下拉菜单之一如下所示,

1 of 6 下拉菜单

我有带有动态 div id 的 HTML,

HTML

我选择其中一个选项的 xpath 为 -> //li[text()='No Problems']。下面的方法确实点击了下拉菜单,但未能点击没有问题。我无法使用 Select 类,因为 DOM 没有选择标签。

以下是我尝试选择下拉选项的两种不同方法,

单击下拉菜单并选择 No Problems 的方法

方法 2 从下拉列表中选择选项

请帮助如何克服这种情况并选择下拉列表选项。

标签: javaselenium-webdriverdrop-down-menu

解决方案


// 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;
            }

推荐阅读