硒在用户名和密码中填充时,在硒python中难以处理

时间:2019-02-25 23:02:57

标签: python selenium automated-tests web-crawler

使用代码时:

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已经停止了与登录框的自动交互。请说明如何使用Selenium或任何其他python库自动登录Quora。

3 个答案:

答案 0 :(得分:1)

在Quora登录页面上有两个元素,名称分别为电子邮件和密码。一种是棘手的,一种不是。

似乎不可点击的内容仅在注册时显示。

为了获得正常登录的正确元素,以下xpath对我有用:

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

答案 1 :(得分:1)

问题在于,存在多个名称分别为emailpassword的元素,相反,您可以使用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')

答案 2 :(得分:1)

检查xpth是否唯一。您可以使用chropath或pagemodellor获得唯一的xpath或自己构建一个。否则,这是单击

的直接解决方案

在使用xpath之前,请始终对其进行两次测试,以便节省时间。 // tag [@ name ='somename']