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