下拉web元素不允许使用复合类名(Selenium)

时间:2016-02-15 12:01:08

标签: jquery scala selenium selenium-webdriver selenium-chromedriver

我有一个下拉列表的检查结果如下:

enter image description here

我想检查所有li元素并查看其中一个元素是否包含文字"其他"例如......

所以我在scala中写作并且我这样做了:

driver.findElement(By.className("dropdown-menu open")).click()
val myDropDown = driver.findElement(By.className("dropdown-menu open")).findElements(By.tagName("li"))
val answer = myDropDown.exists(a => a.getText == "Other")
println(answer.toString())
显然它不是真的,你觉得我应该怎么做? 感谢

2 个答案:

答案 0 :(得分:0)

您必须通过By.cssSelector而不是By.className来查找。如前所述,By.className不支持复合css。所以你的代码应该是:

driver.findElement(By.cssSelector("dropdown-menu open")).click()
val myDropDown = driver.findElement(By.cssSelector("dropdown-menu open")).findElements(By.tagName("li"))

答案 1 :(得分:0)

如果你想检查所有li元素,那么你可以试试这个:

driver.findElement(By.xpath("//div[@class='dropdown-menu open']")).click();
List<WebElement> liList =
driver.findElements(By.xpath("//div[@class='dropdown-menu open']//li[@class='nya-bs-option']"));
for(WebElement wb : liList)
{
   if(wb.getText().contains("Other"))
   {
     //...
   }
}