2

我是新的使用Java的硒webdriver。我能夠編寫Java代碼來選擇下拉菜單,如果有正常的選擇類的東西,如: -如何選擇jQuery無訂單下拉列表硒硒webdriver

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

但下面的代碼有選擇2類從jQuery的。試過多個選項。從那時起,我可以選擇顯示下拉菜單,但我無法選擇Apple或Orange,或選擇葡萄。

有人可以幫助我如何從這種下拉列表中選擇Apple?任何線索或代碼非常感謝。 ..

這是代碼看起來提前像

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

感謝

回答

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

工作就像魅力。非常感謝。!!你能否介紹一下這部分代碼。只是試圖瞭解更多和抱歉,如果它是基本的......「。li [normalize-space(。) - 這個規範化空間是做什麼的,爲什麼有點? – coolgokul

+0

它只是xpath函數,用來避免額外的一個元素的文本內容爲空格,點意味着它只是匹配任何元素中的確切文本內容,無論元素內存在多少其他元素,更多詳細信息請點擊此鏈接https://www.w3.org/TR/ xpath /#function-normalize-space –

+0

@coolgokul要了解更多關於dot [請看這裏](http://stackoverflow.com/questions/38240763/xpath-difference-between-dot-and-text)。謝謝 –

相關問題