如何选择jquery无序下拉列表selenium webdriver

问题描述 投票:0回答:1

我可以编写java代码来选择下拉列表,如果它有普通的选择类,例如:-

new Select(driver.findElement(By.id("someid"))).selectByValue("1"));

但是下面的代码有来自 jquery 的 select2 类。尝试了多种选择。我可以选择从那时起显示下拉菜单,我无法选择苹果或橙子,也无法选择葡萄。

有人可以帮助我如何从这种下拉列表中选择 Apple 吗?非常感谢任何线索或代码。 ..

这就是代码的样子

<div id="select2-drop" class="select2-drop select2-display-none select2-with-searchbox select2-drop-active" style="somestyleelements">
    <div class="select2-search">
        <ul id="select2-results-1" class="select2-results" role="listbox">
            <li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
                <div id="select2-result-label-random" class="select2-result-label" role="option">
                    <span class="select2-match"></span>
                        Apples
                </div>
            </li>
            <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
                <div id="select2-result-label-random" class="select2-result-label" role="option">
                    <span class="select2-match"></span>
                        Orange
                </div>  
            <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
            <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
            <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
        </ul>
</div>

java jquery selenium-webdriver drop-down-menu jquery-select2
1个回答
1
投票

Select()
类仅适用于
<select>
标签元素。所以你不能在这里使用
Select()
类。你应该尝试如下:-

WebDriverWait wait = new WebDriverWait(driver, 10);

//First click on dropdown to show options 
WebElement dropdown = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("select2-drop")));
dropdown.click();

//Now find desired option and click 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//li[normalize-space(.) = 'Apples']"))).click();
© www.soinside.com 2019 - 2024. All rights reserved.