目前我知道您可以使用以下语法在 xpath 上搜索 Web 元素:
driver.findElement(By.xpath("//*[text()='text to be found']"));
我是否可以从变量字符串中搜索元素?我希望能够制定这样的方法:
public boolean nameExists( String name ) {
if (driver.findElement(By.xpath("//*[text()= name ]")) )
return true;
else
return false;
}
最佳答案
你可以这样做:
public boolean nameExists(String name) {
return driver.findElements(By.xpath("//*[text()='" + name + "']")).size() != 0;
}
<小时/>
请记住 findElement
返回 WebElement
不是boolean
。另外,如果给定的元素不存在,Selenium 将抛出 NoSuchElementException
.
相反,我们可以利用 findElements
找到所有WebElement
s 与给定的 String name
来自您的 XPath。如果返回List<WebElement>
包含任何值 ( .size() != 0
),这意味着至少有一个 WebElement
给定 name
存在。
关于java - 我可以将变量应用于 Selenium WebDriver 上基于文本的 xPath 搜索吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247911/