Selenium-在xpath中使用通配符



是否有一个xpath表达式可以覆盖以下所有内容:

//center/b[contains(string(), 'New password')]
//center/h3[contains(string(), 'Renaming user ID')]
//h3/center[contains(string(), 'Updating Email to')]
//h3/center[contains(string(), 'Retrieving Azure status')]

这就是我所拥有的:

public String getMessage(String message) {
return driver.findElement(By.xpath("//*[contains(string(), '" + message + "')]")).getText();
}

有别的办法吗?

您可以将它们与or|组合。

为便于阅读而缩短:

//path/one[contains(., 'A') or contains(., 'B')]|//path/two[contains(., 'C') or contains(., 'D')]

请注意,如果可以的话,这个将为您提供多个结果(就像任何不专门限于单节点结果的XPath一样(。

最新更新