Борьба с Selenium - ввод имени пользователя и пароля - PullRequest
0 голосов
/ 27 января 2020

Это код, который у меня есть

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://website.com")

element_user = driver.find_elements_by_id("user").send_keys("name123")

Я получаю эту ошибку

element_user = driver.find_elements_by_id("user").send_keys("")
AttributeError: 'list' object has no attribute 'send_keys'

Ответы [ 3 ]

2 голосов
/ 27 января 2020

Вы используете find_elements_by_id обратите внимание на s в elements.

DOCS (epmhasis mine)

Возвращает:

список WebElement - список с элементами, если таковые были найдены. Пустой список, если нет

Также есть метод find_element_by_id, который возвращает один элемент, если найден.

1 голос
/ 27 января 2020

find_elements_* возвращает список, для одного WebElement используйте find_element_*. Кроме того, send_keys() не имеет оператора return, поэтому возвращает значение по умолчанию None. Разделите команду на две строки или удалите присвоение

driver.find_element_by_id("user").send_keys("name123")
# or
element_user = driver.find_elements_by_id("user")
element_user.send_keys("name123")
1 голос
/ 27 января 2020

Найти элемент s возвращает список. Используйте find_element_by_id

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