我希望获得所有类别名称为“act”或“dact”的WebElement信息
我使用下面的代码行来获取“act”的所有类信息。任何人都可以帮我在班级名称中使用OR条件吗?
List<WebElement> nL2 = driver.findElements(By.className("act"));
类似于此的东西;所以我不必为每个班级写两个单独的行。
//this is not working
List<WebElement> nL2 = driver.findElements(By.className("act | dact"));
谢谢!
答案 0 :(得分:8)
你能把两个名单合并吗?
List<WebElement> act = driver.findElements(By.className("act"));
List<WebElement> dact = driver.findElements(By.className("dact"));
List<WebElement> all = new ArrayList<WebElement>();
all.addAll(act);
all.addAll(dact);
或者,您可以使用@Alejandro
建议的xpath定位器List<WebElement> all = driver.findElements(By.xpath("//*[@class='act' or @class='dact']"));
答案 1 :(得分:4)
我知道这个问题很老但是最简单的方法就是使用CSS选择器,比如
driver.findElements(By.cssSelector(".act, .dact"));
你应该更喜欢CSS选择器到XPath,因为浏览器支持更好,性能更高(我认为它们更容易学习/理解)。 CSS选择器可以做任何事情By.className()
可以加上更多。它们非常强大且非常有用。
一些CSS选择器引用可以帮助您入门。