Как использовать regex в локаторах селена

Вы можете также:

XmlDocument Примеры находится на страницах MSDN, обеспечил

11
задан Guy 9 September 2009 в 11:40
поделиться

3 ответа

Возможное решение - использовать sel.get_eval() и написать JS-скрипт, который возвращает список ссылок. что-то вроде следующего ответа: selenium: Возможно ли использовать regexp в локаторах selenium

1
ответ дан 3 December 2019 в 07:38
поделиться

Вы можете использовать команду Selenium getAllLinks, чтобы получить массив идентификаторов ссылок на странице, которые затем можно было бы просмотреть и проверить href с помощью getAttribute, который принимает указатель, за которым следует @ и имя атрибута. Например, в Java это может быть:

String[] allLinks = session().getAllLinks();
List<String> matchingLinks = new ArrayList<String>();

for (String linkId : allLinks) {
    String linkHref = selenium.getAttribute("id=" + linkId + "@href");
    if (linkHref.matches("http://[^/]*\\d+.com")) {
        matchingLinks.add(link);
    }
}
3
ответ дан 3 December 2019 в 07:38
поделиться

Ответ, приведенный выше, вероятно, является правильным способом найти ВСЕ ссылки, соответствующие регулярному выражению, но я подумал, что было бы также полезно ответить на другую часть вопроса, как использовать regex в локаторах Xpath. Вам необходимо использовать функцию regex matches (), например:

xpath=//div[matches(@id,'che.*boxes')]

(при этом, конечно, будет щелкнуть div с 'id = checkboxes' или 'id = cheANYTHINGHEREboxes')

Однако имейте в виду, что функция совпадений не поддерживается всеми реализациями Xpath в собственном браузере (наиболее заметно, что использование этой функции в FF3 вызовет ошибку: недопустимый xpath [2]).

Если у вас проблемы с конкретным браузером (как я сделал с FF3) ), попробуйте использовать Selenium allowNativeXpath ("false") для переключения на интерпретатор JavaScript Xpath. Это будет медленнее, но похоже, что он работает с большим количеством функций Xpath, включая «совпадения» и «заканчивается на». :)

12
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: