Запрос HTML-тега с XPath - PullRequest
1 голос
/ 31 мая 2009

Я пишу тест на селен.

У меня есть ярлык "Assign Designer" и поле выбора, расположенное сразу после ярлыка. К сожалению, поле выбора имеет динамический идентификатор, и я не могу запросить его по идентификатору или любому другому его атрибуту.

Можно ли построить запрос XPath, который возвращает «Первый тег выбора после текста« Назначить конструктор »»?

PS. Selenium поддерживает только XPath 1.0

1 Ответ

3 голосов
/ 31 мая 2009

Это будет что-то вроде:

//label[text() = 'Assign Designer']/following-sibling::select[1]

Обратите внимание, что:

  • Сокращение // довольно неэффективно, поскольку вызывает сканирование всего документа. Если вы можете более точно определить положение лейбла, я рекомендую это сделать. Однако, если документ небольшой, это не будет проблемой.
  • Поскольку я мало знаю о Selenium, я использовал «label». Если это не <label>, вы, конечно, должны использовать фактическое имя элемента. ; -)
  • обязательно включайте предикат положения (в данном случае [1]) всякий раз, когда вы используете ось типа "following-sibling" Это легко забыть, и если это так, ваши выражения могут привести к неожиданным результатам.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...