Selenium xpath计数

arm*_*ino 2 java testing selenium

我必须忽视一些非常明显的事情.这个XPath表达式出了什么问题?我想得到一个与正则表达式匹配的表行数id

selenium.getXpathCount("//tr[matches(@id,'data-row-\\d+')]");
Run Code Online (Sandbox Code Playgroud)

我越来越:

com.thoughtworks.selenium.SeleniumException:错误:无效的xpath [2]:// tr [匹配(@ id,'data-row-\d +')]

这是示例html:

<table>
  <tbody>
    <tr id="data-row-0"><td>foo</td></tr>
    <tr id="data-row-1"><td>bar</td></tr>
    <tr id="data-row-2"><td>baz</td></tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

Vam*_*rni 6

Selenium 1.x不支持XPath 2.0.因此,您不能使用XPath 2.0方法,如matches(),replace()等.

您可能需要考虑XPath 1.0方法,如contains(),starts-with()等.

此外,为了实现您的目标,您可以尝试

//tr[starts-with(@id,'data-row-') and translate(@id,'0123456789','')]