目前我知道您可以使用以下语法在xpath上搜索Web元素:
driver.findElement(By.xpath("//*[text()='text to be found']"));
无论如何我可以从变量String中搜索元素吗?我希望能够制作这样的方法:
public boolean nameExists( String name ) {
if (driver.findElement(By.xpath("//*[text()= name ]")) )
return true;
else
return false;
}
答案 0 :(得分:2)
你可以这样做:
public boolean nameExists(String name) {
return driver.findElements(By.xpath("//*[text()='" + name + "']")).size() != 0;
}
请注意,findElement
会返回WebElement
而不是boolean
。此外,如果给定元素不存在,Selenium将抛出NoSuchElementException
。
相反,我们可以利用findElements
从您的XPath中找到具有给定WebElement
的所有String name
。如果返回的List<WebElement>
包含任何值(.size() != 0
),则表示至少有一个WebElement
包含给定的name
。