Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Selenium-在xpath中使用通配符_Html_Selenium_Xpath - Fatal编程技术网

Html Selenium-在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

是否有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')]
这就是我所拥有的:

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,我只能建议花半个小时阅读教程。