Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
XPath-选择一个或另一个元素_Xpath - Fatal编程技术网

XPath-选择一个或另一个元素

XPath-选择一个或另一个元素,xpath,Xpath,我使用XPath从HTML文档中获取一个元素。元素必须具有特定id,或者如果id不存在,则获取保证存在的元素,例如body元素 要通过元素id获取元素,我使用: css=#may-not-exist 为了得到后退元素,比如说,我使用的身体: css=body 如何将上述两个表达式组合成一个表达式get可能不存在,否则get body?可以使用body作为默认值。它首先来自于表达,因为除非你在头脑中寻找某种东西,否则它首先开始于其他任何东西 //*[@id=xxx]|//正文[最后] 说明:

我使用XPath从HTML文档中获取一个元素。元素必须具有特定id,或者如果id不存在,则获取保证存在的元素,例如body元素

要通过元素id获取元素,我使用:

css=#may-not-exist
为了得到后退元素,比如说,我使用的身体:

css=body
如何将上述两个表达式组合成一个表达式get可能不存在,否则get body?

可以使用body作为默认值。它首先来自于表达,因为除非你在头脑中寻找某种东西,否则它首先开始于其他任何东西

//*[@id=xxx]|//正文[最后] 说明:
这个。。。部分返回其子部分的并集。它们是*[@id=xxx]-属性id值为xxx-和//body的任何元素,即body。从这个联合中,[last]选择最后一个。返回的节点的排序方式与原始文档中的排序方式相同,所以body至少优先于body内部的任何内容。若id为的元素存在,它将出现在body之后并返回。否则,body将作为从union返回的唯一第一个和最后一个节点返回。

尽管Selenium IDE似乎被括号卡住了,但您提供的表达式似乎有效,因此选择接受。谢谢。@Anthony:请参阅W3C提供的XML路径语言1.0版中的节点集。