我正在使用CasperJS,希望单击一个具有特定浮点值的表元素,但前面有一些空白,我不知道有多少。
例如:
<td class="narrow value ng-binding"><i class="fa" ng-class="{...}"></i> 1,45</td>
我试着通过以下方式瞄准这个元素:
this.click(x('//*[text()="1,45"]'));
但我得到了:
无法在不存在的选择器上分派单击事件:XPath表达式:'//*[text()="1,45"]'
有人能指出如何在开始时忽略空白,或者为什么这不起作用吗?
使用normalize-space()
"忽略"字符串开头和结尾的空白:
//*[normalize-space(text())="1,45"]
或者在目标文本节点可能不是其父元素中的第一个子文本节点的情况下使用以下形式:
//*[text()[normalize-space(.)="1,45"]]
来自MDN:
normalize-space
函数从字符串中去除前导和尾随空格,用单个空格替换空白字符序列,并返回结果字符串。