Xpath表达式以正确匹配文本,但修剪前导和尾随空格

kro*_*761 7 selenium xpath

我的selenium测试需要一个xpath表达式来获取这个元素:

<td class="label">        Order Date      </td>
Run Code Online (Sandbox Code Playgroud)

但不是这个:

<td class="label">    Order Dates  </td>
Run Code Online (Sandbox Code Playgroud)

我试过这两个:

"//*[text() = 'Order Date']"
"//*[text()[contains(.,'Order Date')]]"
Run Code Online (Sandbox Code Playgroud)

但是精确匹配表达式不会考虑空格,而contains表达式也会以元素为目标s.

Tar*_*ani 14

您需要使用XPath的normalize-space()作为//td[normalize-space()="Order Date"]

  • 需要明确的是,还值得指出文档中的这个片段“标准化空间函数从字符串中去除前导和尾随空白,**用单个空格替换空白字符序列**,并返回结果字符串.”。值得注意的是**粗体**片段。根据具体情况,这可能既有用又令人不安。 (6认同)