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

时间:2017-07-21 23:01:54

标签: java selenium xpath webdriver

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

1 个答案:

答案 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