在 Selenium Webdriver (Java) 中检查 bootstrap 下拉值

Checking for a bootstrap dropdown Value in Selenium Webdriver (Java)

我有一个如下所示的下拉菜单,我想使用 Java Selenium Web 驱动程序检查该下拉菜单中是否存在特定值。

我需要检查下拉菜单中是否存在值 3。下面是 HTML 片段。

有人可以帮助我了解这是如何实现的吗?

<div id="select2-drop">
<ul class="select2-results">
    <li class="select2-results-dept-0 select2-result select2-result-selectable">
        <div class="select2-result-label">
            <span class="select2-match"></span>
            Value 1
        </div>
    </li>
    <li class="select2-results-dept-0 select2-result select2-result-selectable">
        <div class="select2-result-label">
            <span class="select2-match"></span>
            Value 2
        </div>
    </li>
    <li class="select2-results-dept-0 select2-result select2-result-selectable">
        <div class="select2-result-label">
            <span class="select2-match"></span>
            Value 3
        </div>
    </li>
    <li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted">
        <div class="select2-result-label">
            <span class="select2-match"></span>
            Value 4
        </div>
    </li>
</ul>       

您使用的是Select2 3.x下拉菜单。

问题是您必须单击 select。然后只将列表添加到 DOM[列表将可见]

您可以使用此 xpath 检查选项的可用性

//div[@class='select2-result-label'][text()='optionText']

但在此之前你必须点击select container.Most可能会是

 //div[contains(@class,'select2-container')]

我在示例页面上自动生成的示例代码

 driver.get("http://select2.github.io/select2/");
    WebElement select = driver.findElement(By.xpath("//div[contains(@class,'select2-container')]"));
    select.click();
    String optionText="Alaska";
    List<WebElement> options=driver.findElements(By.xpath("//div[@class='select2-result-label'][text()='"+optionText+"']"));
    if(options.isEmpty())
        System.out.println("Option not present");
    else
        System.out.println("Present");