Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

Решение — использовать JavaScript replace() функция с storeEval:

| storeAttribute | //pathToMyElement@id                                   | elementID |
| storeEval      | '${elementID}'.replace("element-", "")                 | myID      |

Теперь, если я повторю myID Я получаю только идентификатор:

| echo | ${myID} | 12345 |

Другие советы

/element-(\d+)/i

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

Что-то вроде этого мощь работа:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top