Как работают регулярные выражения в selenium?

Я хочу сохранить часть идентификатора, а остальное выбросить. Например, у меня есть html-элемент с идентификатором "element-12345". Я хочу выбросить 'элемент' и сохранить '12345'. Как я могу это сделать?

Я могу захватить и повторить значение, например:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${!-myId-!} | |

когда я запускаю тест, я получаю что-то вроде этого:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${myId} | element-12345 |

Я записываю с помощью Selenium IDE и копирую тест в Fitnesse, используя приспособление Selenium Bridge. Проблема я использую чистую базу данных каждый раз, когда я запускаю тест, со случайными идентификаторами, которые мне нужно захватить и использовать на протяжении всего теста.

3 ответов


решение заключается в использовании JavaScript


/element - (\d+) / i

Это регулярное выражение, которое будет захватывать цифры после тире.


что-то вроде этого может работы:

| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |

для выполнения регулярного выражения требуется XPath 2.0 - не уверен, какую версию реализует Selenium.