Проблемы с XPath в Selenium - PullRequest
       12

Проблемы с XPath в Selenium

0 голосов
/ 01 апреля 2019

Я хочу найти элемент на основе его атрибутов.

Я уже пробовал искать по всем элементам div, указывать по атрибутам и даже искать по *.Ничего из этого не было решением.Весь элемент выглядит следующим образом:

<div class="charc" data-lvl="66" data-world="walios" data-nick="mirek">

Это мое поисковое выражение:

driver.find_element_by_xpath('//div[@data-world="walios"] and [@data-nick="mirek"]')

Я хотел бы найти этот элемент, используя python с селеном, и иметь возможность щелкнуть по нему.

На самом деле я получаю сообщение об ошибке

SyntaxError: Не удалось выполнить 'define' для 'Document': строка '// div [@ data-world = "walios"]и [@ data-nick = "mirek"] 'не является допустимым выражением XPath.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

driver.find_elements_by_xpath("//div[@data-world="walios" and @data-nick="mirek)]")

или

driver.find_elements_by_xpath("//div[@data-world="walios"][@data-nick="mirek)]")

Множественные условия для выбора тега не могут быть внутри вложенного [].Необходимо указать либо в пределах одного [], либо в пределах нескольких [] с.

Методы осей XPath:

Эти методы осей XPath используются для нахождения сложного или динамическогоэлементы.Ниже мы увидим некоторые из этих методов.

Выражение XPath выбирает узлы или список узлов на основе таких атрибутов, как ID, Имя, Имя класса и т. Д. Из документа XML.

0 голосов
/ 01 апреля 2019

Сообщение об ошибке является правильным, потому что ваш предикат (ы) является / не являются правильными.
Попробуйте поместить предикат в одно [...] выражение:

driver.find_element_by_xpath('//div[@data-world="walios" and @data-nick="mirek"]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...