Как мне заполнить форму, используя Python и Selenium? - PullRequest
0 голосов
/ 18 апреля 2019

Я новичок в Python и хотел использовать его для автоматического входа в систему.Я обнаружил https://automatetheboringstuff.com/chapter11/ и попытался:

#! python3
from selenium import webdriver
browser = webdriver.Firefox()
type(browser)
browser.get('https://forum-studienstiftung.de/')
emailEl = browser.find_element_by_id(username)

К сожалению, это приводит к:

Traceback (последний вызов был последним): Файл "", строка 1,в emailEl = browser.find_element_by_id (username) NameError: имя 'username' не определено

В соответствии с инструментами разработчика Firefox правильным идентификатором является "username".

Ответы [ 2 ]

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

Страница, к которой вы пытаетесь получить доступ, требует времени для загрузки. Вы должны подождать, пока элемент будет виден, прежде чем получить к нему доступ.

Попробуйте это :

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC


browser = webdriver.Firefox()
type(browser)
browser.get('https://forum-studienstiftung.de/')
emailEl = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.id, "username")))
1 голос
/ 18 апреля 2019

Завершение имени пользователя в кавычки. Прямо сейчас вы передаете переменную с именем username, которую selenium пытается сопоставить с идентификатором на странице с тем же значением. Поскольку значение равно none, Selenium не может найти его, следовательно, ошибка.

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