使用代码时:
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。
答案 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)
问题在于,存在多个名称分别为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')
答案 2 :(得分:1)
检查xpth是否唯一。您可以使用chropath或pagemodellor获得唯一的xpath或自己构建一个。否则,这是单击
的直接解决方案在使用xpath之前,请始终对其进行两次测试,以便节省时间。 // tag [@ name ='somename']