java - 我可以将变量应用于 Selenium WebDriver 上基于文本的 xPath 搜索吗?

标签 java selenium xpath webdriver

目前我知道您可以使用以下语法在 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/

相关文章:

java - 为什么我的数组没有填充对象/显示?

java - 将 ImageIcon 设置为全屏

selenium - 使用WebdriverJS时如何访问错误?

xml - FFProbe XML XPath

java - 有什么办法可以获取listView中的特定 View 吗?

java - 将字符串中的字符替换为另一个字符串?

java - 哪个 Selenium 版本支持 OperaDriver 版本?

php - 在 webdriver 中呈现 HTML 字符串或本地 html 文件

php - 如果 <br/> 之前或之后没有文本,我如何删除它? DOMxpath 还是正则表达式?

xml - 搜索 XML (XPATH/XSLT) 根据 'rank' 返回路径