使用多个条件在Selenium中查找WebElement

7 java selenium selenium-webdriver

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

 driverChrome.findElements(By.tagName("input").id("id_Start"));
Run Code Online (Sandbox Code Playgroud)

要么

driverChrome.findElements(By.tagName("input").id("id_Start").className("blabla"));
Run Code Online (Sandbox Code Playgroud)

小智 9

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

driverChrome.findElements(
    new ByChained(
        By.tagName("input"),
        By.id("id_Start"),
        By.className("blabla")
    )
)
Run Code Online (Sandbox Code Playgroud)

但是,如果标准涉及相同的元素,请参阅@Saifur 的回答。


Sai*_*fur 6

不,不是的.你不能连接/添加这样的选择器.无论如何这都无效.但是,您可以编写选择器,以覆盖所有方案并使用它findElements()

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

这应该返回一个包含input类名blabla或标签的元素列表id id_Start