使用多个条件查找硒中的 WebElement

2022-09-04 07:33:28

我正在使用Selenium来测试一个网站,如果我通过多个标准找到并元素,这是否有效?例如:

 driverChrome.findElements(By.tagName("input").id("id_Start"));

driverChrome.findElements(By.tagName("input").id("id_Start").className("blabla"));

答案 1

不,它没有。您不能像这样连接/添加选择器。无论如何,这是无效的。但是,您可以这样编写选择器,以涵盖所有方案并将其用于findElements()

By byXpath = By.xpath("//input[(@id='id_Start') and (@class = 'blabla')]")
List<WebElement> elements = driver.findElements(byXpath);

这应该会返回一个元素列表,其中包含具有类名且具有inputblablaid id_Start


答案 2

要合并 By 语句,请使用 ByChained:

driverChrome.findElements(
    new ByChained(
        By.tagName("input"),
        By.id("id_Start"),
        By.className("blabla")
    )
)

但是,如果条件引用相同的元素,请参阅@Saifur的答案。


推荐