如何 select jquery 无序下拉列表 selenium webdriver

how to select jquery unorderded drop down list selenium webdriver

我是新的 selenium webdriver 使用 Java。我可以将 java 代码写入 select 下拉菜单,如果它有正常的 select class 类似 :-

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

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

有人可以帮助我如何从这种下拉列表中 select 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() class 仅适用于 <select> 标签元素。所以这里不能用Select() class。你应该尝试如下:-

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();