我正在尝试使用python Selenium Chrome驱动程序登录openload.co,但出现以下错误:
消息:元素不可交互
我正在使用以下代码,并且错误发生在代码的最后一行,我无法将键发送到输入标签。
from selenium import webdriver
path="path_to_chrome_driver" #add chromedriver path
driver=webdriver.Chrome(path)
from selenium.webdriver.common.keys import Keys
driver.get('https://openload.co/login')
email = driver.find_element_by_xpath('//*[@id="loginform-email"]')
email.send_keys("example@xyz.com")
我搜索了stackoverflow上的问题,并找到了以下链接similar question,该链接可能未指向正确的xpath或css_selector。但是我似乎找不到。 我在这里做什么错了?
答案 0 :(得分:2)
这是因为当您单击右上方的“登录”按钮时,HTML中出现了一个模式。有重复的ID。您可以尝试像这样 http://username:password@openload.co/ 传递密码和用户名吗?
@john试试这个,对我有用:
t
答案 1 :(得分:1)
尝试在发送密钥之前单击元素。
driver.find_element_by_xpath('//*[@id="loginform-email"]').click()
因此,光标将在电子邮件文本框字段上处于活动状态,因此该元素应可交互使用。
答案 2 :(得分:1)
页面上有两种形式:第一种用于登录,第二种用于登录。两者的输入字段都具有相同的@id
值。您需要选择登录表单:
email = driver.find_element_by_xpath('//h1[.="Login"]/following::*[@id="loginform-email"]')
email.send_keys("example@xyz.com")