2016-05-12 61 views
0

爲了獲得元素我已經使用了嵌套loop.I我能夠在dropdwn.PFB點擊代碼:硒不能跨越元素選擇下拉

List<WebElement> webElements1 = driver.findElements(By.className("selectboxit")); 

for(WebElement webElement1 : webElements1) {    

if(webElement1.getAttribute("name").equals("TransactionHistoryFG.OUTFORMAT")) 

{   
    WebElement web1 = webElement1.findElement(By.className("selectboxit-text")); 

    web1.click();  
} 
} 

當我嘗試使用上webelement選擇我我得到的錯誤:

org.openqa.selenium.support.ui.UnexpectedTagNameException:元 應該是 「選擇」,但被 「跨度」

如何CA我選擇下拉我span元素?

+0

由於錯誤狀態..只有當給定元素的標記是Select..i.e時,您纔可以使用Select API如果組合框是傳統組合框而不是組件框。 –

回答

0

使用硒的webdriver選擇下拉可能的解決方案是:

Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down"))); 
select.deselectAll(); 
select.selectByVisibleText("Value1"); 

相反,你上面提到的方法,讓我知道,如果這有助於:)

+0

沒有ranjith ..正如我提到的問題,我已經嘗試選擇..它不工作 – Gourav

+0

是否有可能更新HTML代碼? –

0
List<WebElement> webElements1 = driver.findElements(By.cssSelect(".selectboxit")); 

for(WebElement webElement1 : webElements1) {    

if(webElement1.getAttribute("name").equals("TransactionHistoryFG.OUTFORMAT")) 

{   
    WebElement web1 = webElement1.findElement(By.className("selectboxit-text")); 

    JavascriptExecutor js = (JavascriptExecutor)driver; 
    js.executeScript("arguments[0].click();", web1);  
} 
} 
0

嗯,這是不最好的辦法,但在某些情況下,它可以使用:

它會打開你的組合框

driver.findElements(By.cssSelect(".selectboxit")).click() 

現在,你只需要編寫規定值

driver.findElements(By.cssSelect(".selectboxit")).sendKeys("<value>"); 

OR

driver.findElements(By.cssSelect(".selectboxit")).sendKeys(Keys.ARROW_DOWN). 

使用 「ARROW_DOWN」 如想選擇特異性價值。