SyntaxError: Не удалось выполнить 'define' для 'Document': строка '// img [содержит (' 1236548597 ')]' не является допустимым выражением XPath - PullRequest
0 голосов
/ 29 августа 2018

Я получаю синтаксическую ошибку:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains('1236548597')]' is not a valid XPath expression.

Мой код:

enter_chat = driver.find_element_by_xpath("//img[contains('1236548597')]")
enter_chat.click()

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Это сообщение об ошибке ...

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains('1236548597')]' is not a valid XPath expression.

... подразумевает, что XPath , который вы использовали, не был действительным XPath выражением.

В вашей пробной версии кода есть предикат с функцией contains().

  • contains() принимает два параметра. Первый параметр - это всегда атрибут , который нужно проверить, а второй параметр - это значение , которое нужно найти. Первым параметром должен был быть атрибут , который содержит значение 1236548597 :

    enter_chat = driver.find_element_by_xpath("//img[contains(@<attributeName>,'1236548597')]")
    

Было бы сложно построить ответ без соответствующего HTML. Однако два возможных решения следующие:

  • Если тег представляет собой тег <a>, содержащий атрибут img , содержащий значение 1236548597 :

    enter_chat = driver.find_element_by_xpath("//a[contains(@img,'1236548597')]")
    
  • Если тег представляет собой тег <img>, содержащий атрибут src , содержащий значение 1236548597 :

    enter_chat = driver.find_element_by_xpath("//img[contains(@src,'1236548597')]")
    
0 голосов
/ 29 августа 2018

Должно быть,

enter_chat = driver.find_element_by_xpath("//img[contains(text(),'1236548597')]")
enter_chat.click()

if "//img[contains(text(),'1236548597')]" not work, 
try "//img[contains(.,'1236548597')]"

Вы пропустили функцию text ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...