4

我有一个关于 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']")

你有什么想法吗?谢谢!

4

2 回答 2

7

尝试使用normalize-space()which 修剪前导和尾随空白字符:

//td[normalize-space(text())='Hello world']

按照不同的评论进行编辑:

这是一个可能更适合一般情况的 XPath 表达式:

//td[starts-with(normalize-space(.), 'Hello world')]

<td>这意味着如果整个连接的字符串内容(<td>较少的前导和尾随空格)以“Hello world”开头,则它匹配节点

于 2013-09-07T00:43:38.200 回答
0

我会尝试使用contains()功能。您的 xpath 将如下所示://td[contains(text(),'Hello world')]

于 2013-09-09T06:26:34.420 回答