TypeError: объект 'str' не вызывается при использовании Selenium через Python - PullRequest
1 голос
/ 03 апреля 2019

Когда я пытаюсь сделать код, показанный ниже, я получаю ошибку:

TypeError: объект 'str' не может быть вызван

email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").text()

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

text это свойство, а не функция. Используйте его без ()

element.text

Как примечание, абсолютный xpath "/html/body/..." - плохой подход, он делает хрупкий локатор. Вы должны попытаться найти элементы по уникальному атрибуту (id, name, class и т. Д.) Или по крайней мере относительно xpath.

1 голос
/ 03 апреля 2019

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

TypeError: 'str' object is not callable

... подразумевает, что ваша программа вызвала function(), что на самом деле property.

Согласно selenium.webdriver.remote.webelement text является property.

Итак, вы не можете вызвать text() как функцию. Отсюда вы видите ошибку.

Решение

Вы можете использовать одно из следующих решений:

  • Использование text свойство :

    email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").text
    
  • Использование get_attribute("innerHTML") метод:

    email2_elem = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[1]/div[1]/div[1]/form[1]/div[1]/input[1]").get_attribute("innerHTML")
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...