Возможно, вам нужно добавить wait
в поле пароля. Это может помочь, если вы видите периодически возникающие проблемы с вашим скриптом. Я предпочитаю wait
на элементе, а не sleep
.
import bs4
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
driver = webdriver.Chrome();
url = "https://twitter.com/login"
driver.get(url)
assert "Twitter" in driver.title
username = driver.find_element_by_class_name('js-username-field')
username.send_keys('example_username')
# wait on password field
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'js-password-field')))
password = driver.find_element_by_class_name('js-password-field')
password.clear()
password.send_keys('exmaple_password')
login_button = driver.find_element_by_css_selector("button.submit.EdgeButton.EdgeButton--primary.EdgeButtom--medium")
login_button.submit()
Python довольно быстро выполняет шаги, и иногда веб-страницам приходится наверстывать упущенное. Добавление wait
помогает немного замедлить работу и исправить некоторые периодически возникающие ошибки, которые вы можете видеть.