我有一个关于 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']")
你知道吗? 谢谢!
最佳答案
试试 normalize-space()
修剪前导和尾随空白字符:
//td[normalize-space(text())='Hello world']
根据不同的评论进行编辑:
这是一个可能更适合一般情况的 XPath 表达式:
//td[starts-with(normalize-space(.), 'Hello world')]
表示匹配 <td>
nodes if 整个 <td>
的串联字符串内容, 更少的前导和尾随空格,以“Hello world”开头
关于html - 一个 Xpath 表达式在 selenium 中不起作用,但在 Firefox 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668168/