use*_*867 4 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>
Run Code Online (Sandbox Code Playgroud)
但是当我在Firefox中检查相同的元素时,它没有$ nbsp和双引号;
<td class="dataCol col02">
Hello world
<a href="xxxx">[View Hierarchy]</a>
</td>
Run Code Online (Sandbox Code Playgroud)
我使用FireFinder并使用xpath:
//td[text()='Hello world']
Run Code Online (Sandbox Code Playgroud)
,它可以找到该元素.
但是当我使用selenium api 2.24时,它找不到那个元素.
by.xpath("//td[text()='Hello world']")
Run Code Online (Sandbox Code Playgroud)
你有什么想法吗?谢谢!
尝试normalize-space()修剪前导和尾随空白字符:
//td[normalize-space(text())='Hello world']
Run Code Online (Sandbox Code Playgroud)
编辑以下不同的评论:
这是一个XPath表达式,可能更适合一般情况:
//td[starts-with(normalize-space(.), 'Hello world')]
Run Code Online (Sandbox Code Playgroud)
意味着它匹配<td>节点,如果整个<td>,较少的前导和尾随空格的连接字符串内容,以"Hello world"开头