Скрипт не найдет поле пароля Twitter - PullRequest
0 голосов
/ 17 октября 2019

В этом супер базовом скрипте на Python, использующем Selenium, я просто пытаюсь автоматизировать мою учетную запись в твиттере, чтобы я мог начать работу. Когда открывается сеанс Chrome, имя пользователя заполняется, но поле пароля остается пустым.

import bs4
from selenium import webdriver

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')


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()

1 Ответ

0 голосов
/ 17 октября 2019

Возможно, вам нужно добавить 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 помогает немного замедлить работу и исправить некоторые периодически возникающие ошибки, которые вы можете видеть.

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