我有一个下拉列表的检查结果如下:
我想检查所有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())
显然它不是真的,你觉得我应该怎么做?
感谢
答案 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"))
{
//...
}
}