我希望从<span>标记中捕获错误消息文本,或者如果它不存在,则从它的父标记捕捉错误消息文本,从它的父标记捕获错误消息文本。为此,我需要一个有效的xpath表达式,如果可能的话,它可以同时处理这两种情况。
这是html代码。它要么是版本1:
<div class='error-message'>
some error message
</div>或第2版:
<div class='error-message'>
<span>
some other error message
</span>
</div>所以xpath应该是:
v1://div[@class='error-message']
v2://div[@class='error-message']/span
现在我需要结合(可能是一些‘或’表达?)v1和v2不知怎么的。
如曾尝试:
//div[@class='error-message']/descendant-or-self::*,但当span存在时,它会发现这两个元素(更希望使用span!)//div[@class='error-message']/descendant-or-self::span什么也找不到我也尝试过,这个答案中给出的内容是:XPath select child if child exists, else select parent但是使用.../(span, .[not(span)])代码似乎是无效的,至少在Ranorex中是这样。
发布于 2019-05-27 05:20:19
您可以尝试以下方法:
//div[@class='error-message']/descendant-or-self::*[@innertext!='']注意:如果文本内容为空,则有一个限制:(
发布于 2019-07-08 13:19:37
由于您不知道错误消息是否会出现在div标记或span标记中,所以可以尝试以下方法
.//error@innertext~‘error message’
此外,如果对象已被正确识别,直到原始post中的div标记为止,它将工作。
https://stackoverflow.com/questions/56239812
复制相似问题