我有一个关于xpath的问题。 在chrome中有这样的td:
<td class="dataCol col02">
"Hello world(notes:there is$)nbsp;"
<a href="xxxx">[View Hierarchy]</a>
</td>
但是当我在Firefox中检查相同的元素时,它没有$ nbsp和双引号;
<td class="dataCol col02">
Hello world
<a href="xxxx">[View Hierarchy]</a>
</td>
我使用FireFinder并使用xpath:
//td[text()='Hello world']
,它可以找到该元素。
但是当我使用selenium api 2.24时,它无法找到该元素。
by.xpath("//td[text()='Hello world']")
你知道吗?
谢谢!
答案 0 :(得分:7)
尝试使用normalize-space()
修剪前导和尾随空白字符:
//td[normalize-space(text())='Hello world']
根据不同的评论进行编辑:
这里有一个XPath表达式,它可能更适合一般情况:
//td[starts-with(normalize-space(.), 'Hello world')]
意味着它匹配<td>
个节点,如果整个<td>
的连接字符串内容,更少的前导和尾随空格,以&#34; Hello world&#34;
答案 1 :(得分:0)
我会尝试使用contains()
函数。
您的xpath将如下所示://td[contains(text(),'Hello world')]