Html Selenium-在xpath中使用通配符
是否有1个xpath表达式可以涵盖以下所有内容:Html Selenium-在xpath中使用通配符,html,selenium,xpath,Html,Selenium,Xpath,是否有1个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')] 这就是我所拥有的: pub
//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();
}
还有其他方法吗?您可以将它们与
或和结合使用
为便于阅读而缩短:
//path/one[contains(., 'A') or contains(., 'B')]|//path/two[contains(., 'C') or contains(., 'D')]
请注意,如果可以的话,这将为您提供多个结果(就像任何未特别限制于单节点结果的XPath一样)。您可以将它们与或和
组合使用
为便于阅读而缩短:
//path/one[contains(., 'A') or contains(., 'B')]|//path/two[contains(., 'C') or contains(., 'D')]
请注意,如果可以的话,这将给您提供多个结果(就像任何没有明确限制为单节点结果的XPath一样)。您有效率问题吗?对于Selenium这样的设置,我无法想象XPath性能是一个问题,我确实有一个问题,因为每个表达式都有自己的方法。把问题的这一部分拿出来,我只想要一个表达式,涵盖所有4种情况。字符串可以作为参数传递给该方法。最简单的方法是使用union运算符|
将它们连接起来。添加了我想到的内容,但对它不太满意(尽管它可以工作)。如果你能用|
操作符发布答案,我想研究一下。只需要一个工作示例。谢谢你有效率问题吗?对于Selenium这样的设置,我无法想象XPath性能是一个问题,我确实有一个问题,因为每个表达式都有自己的方法。把问题的这一部分拿出来,我只想要一个表达式,涵盖所有4种情况。字符串可以作为参数传递给该方法。最简单的方法是使用union运算符|
将它们连接起来。添加了我想到的内容,但对它不太满意(尽管它可以工作)。如果你能用|
操作符发布答案,我想研究一下。只需要一个工作示例。谢谢contains()中的
是什么意思?
它是当前节点,即[谓词]
工作的节点。这是XPath 101,我建议只花半个小时阅读教程。包含()中的
是什么意思?
它是当前节点,即[谓词]
工作的节点。这是XPath 101,我只能建议花半个小时阅读教程。