html - 一个 Xpath 表达式在 selenium 中不起作用,但在 Firefox 中起作用

标签 html css xpath webdriver selenium-webdriver

我有一个关于 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/

相关文章:

php - Xpath 仅获取文本节点而不获取元素的其他节点

xpath - scrapy xpath 按类名选择元素

HTML:隐藏第一列的表格左边框

html - 如何使节点中绝对位置的内部元素宽度为 100%?

html - 页面与内容的 CSS 背景图像对齐

用于删除供应商前缀的 CSS 缩小器

javascript - 通过jquery的背景颜色

javascript - 在加载时使用 javascript 添加样式属性

html - 仅具有 CSS 的 UL 中的组标题?

xslt - 如何在xslt子字符串函数中转义单引号