我可以编写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>
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();