2016-05-12 34 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” 如想选择特异性价值。