Selenium无法选择span元素的下拉列表

时间:2016-05-12 16:55:20

标签: java selenium

要获取我使用嵌套循环的元素。我能够点击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上使用Select时,我收到错误:

  

org.openqa.selenium.support.ui.UnexpectedTagNameException:Element   应该是“选择”但是“跨度”

如何选择下拉式i span元素?

3 个答案:

答案 0 :(得分:0)

使用selenium webdriver选择下拉列表的可能解决方案是:

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

不是上面提到的方法,请告诉我这是否有帮助:)

答案 1 :(得分: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);       
 }
}

答案 2 :(得分:0)

嗯,这不是最好的方法,但在某些情况下可以使用它:

  

它会打开你的组合框

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

现在,您只需要编写指定的值

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

OR

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

使用&#34; ARROW_DOWN&#34;想要选择你指定的值。