Элемент не может быть применен в Селен Python при заполнении имени пользователя и пароля - PullRequest
0 голосов
/ 26 февраля 2019

При использовании кода:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options 
import time

options = Options()
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--disable-extentions')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.quora.com')
user = driver.find_element_by_name('email')
user.clear()
user.send_keys('username')
password = driver.find_element_by_name('password')
password.clear()
password.send_keys('password')
driver.close()

Я получаю следующую ошибку:

invalid element state: Element is not currently interactable and may not be manipulated

Я думаю, что Quora прекратила автоматическое взаимодействие с окном входа в систему.Пожалуйста, объясните, как автоматически войти в Quora, используя selenium или любую другую библиотеку python.

Ответы [ 3 ]

0 голосов
/ 26 февраля 2019

Проблема в том, что существует несколько элементов с именами email и password, вместо этого вы можете выбрать элементы, используя CSS_SELECTOR, например, так:

user = driver.find_element_by_css_selector('.regular_login [name=email]')
user.clear()
user.send_keys('username')

password = driver.find_element_by_css_selector('.regular_login [name=password]')
password.clear()
password.send_keys('password')
0 голосов
/ 26 февраля 2019

Проверьте, является ли ваш xpth уникальным.Вы можете использовать chropath или pagemodellor, чтобы получить уникальный xpath или создать его самостоятельно.В противном случае это простое решение: кликнуть

, всегда проверяя свой xpath дважды перед его использованием, чтобы сэкономить время до его опоздания.// тег [@ имя = 'SomeName']

0 голосов
/ 26 февраля 2019

На странице входа в Quora есть 2 элемента с именем email и паролем.Один неразрешимый, а другой нет.

Похоже, что тот, который не активен, отображается только при регистрации.

Чтобы получить правильные элементы для обычного входа, у меня работали следующие xpaths:

user = driver.find_element_by_xpath("//div[@class='regular_login']//input[@name='email']")
password = driver.find_element_by_xpath("//div[@class='regular_login']//input[@name='password']")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...