Selenium xpath count - PullRequest
       4

Selenium xpath count

2 голосов
/ 24 февраля 2011

Должно быть, я упускаю из виду нечто очень очевидное.Что не так с этим выражением XPath?Я хочу получить количество строк таблицы, которые соответствуют регулярному выражению для id?

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

Я получаю:

com.thoughtworks.selenium.SeleniumException: ERROR: Неверный 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>

Ответы [ 2 ]

6 голосов
/ 25 февраля 2011

Selenium 1.x не поддерживает XPath 2.0.Следовательно, вы не можете использовать методы XPath 2.0, такие как match (), replace () и т. Д.

Возможно, вы захотите рассмотреть методы XPath 1.0, такие как contains (), начальный-с () и т. Д.

Также для достижения своей цели вы можете попробовать

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

0 голосов
/ 25 февраля 2011

Попробуйте -

int tableRowCount = selenium.getXpathCount("//table[@id='whatever']/tbody/tr").intValue();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...