我有一个节点,如下所示:

<span class="portal-text-medium">Office Hours</span>

对于我使用的xpath
//span[text()='Office Hours']

这应该是可行的,但从来没有。我可以使用*contains(text(),'Office Hours')]*但这找不到确切的匹配,我必须确认没有“*”。这不是唯一一次对我不起作用。我以前见过它起作用,所以我不知道怎么了。知道吗?
是的,我可以,而且可以,使用starts-with但是它并不完全相同。

最佳答案

xpathtext() =与xpath. =不同
(匹配的文本节点与匹配的字符串值不同)
以下xpaths不同…
//span[text() = 'Office Hours']
说:
选择
有一个直系子女text node等于“办公时间”。
span
说:
选择string value等于“办公时间”的//span[. = 'Office Hours']元素。
简而言之,对于element nodes
元素节点的string-value
元素的所有文本节点的
按文档顺序排列的节点。
示例
以下span元素仅与1匹配:
span
<span class="portal-text-medium">Office Hours<br/>8:00-10:00</span>
以下<span class="portal-text-medium">My<br/>Office Hours</span>元素仅与2匹配:
span
<span class="portal-text-medium"><b>Office</b> Hours</span>
以下<span class="portal-text-medium"><b><i>Office Hours</i></b></span>元素将同时匹配1和2:
span

08-25 17:15
查看更多