当前位置: 首页 > 知识库问答 >
问题:

Python selenium ElementNotInteractable异常:消息:元素不可交互

洪涵亮
2023-03-14

我试图登录到beeradvocate.com抓取(抓取)一些啤酒数据。我试过硒,但失败了。

这是html

<input type="text" name="login" value="" id="ctrl_pageLogin_login" class="textCtrl" tabindex="1" autofocus="autofocus" style="background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGP6zwAAAgcBApocMXEAAAAASUVORK5CYII=&quot;); cursor: auto;">

我尝试使用名称、值和类,但一切都失败了。我最后一次尝试Xpath,但也失败了。

网站和检查

我的代码:

driver=webdriver.Chrome("~~~~\\chromedriver.exe")
driver.get("https://www.beeradvocate.com/community/login/")

from selenium.common.exceptions import TimeoutException

driver.maximize_window()

    while True:
        try: 
            WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="ctrl_pageLogin_login"]'))).send_keys("scentmaster")
            break
        except TimeoutException: 
            print("too much time")

我已经使按钮工作:

button = driver.find_element_by_xpath('//*[@id="pageLogin"]/dl[3]/dd/input')
driver.execute_script("arguments[0].click();", button)

然而,我需要能够执行发送_键来输入id和pw来登录。。。有人知道吗?

共有3个答案

郭乐意
2023-03-14
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'form#pageLogin input#ctrl_pageLogin_login'))).send_keys("scentmaster")

#for password
driver.find_element_by_css_selector('form#pageLogin input#ctrl_pageLogin_password').send_keys('your_password')

#for submit
driver.find_element_by_css_selector('form#pageLogin input[type=submit]').click()

弗里安给出的上述解决方案奏效了!:)

卓正业
2023-03-14

要输入用户名,请尝试以下xpath:

'//form/dl/dd/input[@id="ctrl_pageLogin_login"]'

密码:

'//form/dl/dd/input[@id="ctrl_pageLogin_password"]'
危文乐
2023-03-14

如果您使用xpath//*[@id="ctrl_pageLogin_login"],页面上有2个字段,您引用的输入字段是第二个。可悲的是,selenium查找元素默认引用第一个。如果你这样做,它就会起作用:(//*[@id="ctrl_pageLogin_login"])[2]

但是我有另一个建议,试着通过css选择器用这个值来定位元素:form#pageLogin输入#ctrl_pageLogin_login

WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'form#pageLogin input#ctrl_pageLogin_login'))).send_keys("scentmaster")

#for password
driver.find_element_by_css_selector('form#pageLogin input#ctrl_pageLogin_password').send_keys('your_password')

#for submit
driver.find_element_by_css_selector('form#pageLogin input[type=submit]').click()
 类似资料:
  • 网页 在蟒蛇中: 错误: selenium . common . exceptions . elementclickinterceptedexception:Message:Element click intercepted:Element。..在点(1400,38)是不可点击的。其他元素将接收点击:

  • 下面是我的代码。当我从excel中输入url时,大部分时间都显示org . open QA . selenium . elementnotvisibleexception:元素当前不可见错误。对于像www.travelocity.com这样的网站,它显示点击7 8链接后,但www.google.com显示错误从开始。 线程"main"org.openqa.selenium.ElementNotVi

  • 问题内容: 我的任务是编写一个解析器以单击网站上的一个按钮,但我只能单击其中一个按钮而遇到问题。以下代码适用于除一个按钮之外的所有按钮。 这是html:http: //pastebin.com/6dLF5ru8 这是源html:http: //pastebin.com/XhsedGLb python代码: 我收到此错误。 根据赛富尔,我刚刚尝试等待相同的元素不可见异常: 问题答案: 如果你看一下页

  • 问题内容: 在下面的代码中,我无法在密码字段中发送密码密钥,我尝试单击该字段,清除该字段并发送密钥。但是现在可以使用任何一种方法。但是如果我调试和测试它的工作 问题答案: 尝试将隐式等待时间设置为大约10秒。 或设置一个明确的等待。显式等待是您定义的代码,用于等待特定条件发生后再继续执行代码。您的情况就是密码输入字段的可见性。(感谢ainlolcat的评论) 说明 :硒无法找到该元素的原因是因为密

  • 我试图用值“fab”填充搜索输入类型框,然后我想用该关键字显示下一个url,但由于元素不可交互,我得到了这个错误。我怎样才能解决这个问题? 错误:- 回溯(最近一次调用):文件“C:/Users/Mansi Dhingra/Desktop/Projects/api/news/news\u python.py”,第10行,在搜索栏中。clear()文件“C:\Users\Mansi Dhingra\

  • 问题内容: 这是我的代码,可单击该网站上的简单登录按钮 我收到以下错误: 线程“主”中的异常org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:2.05秒 问题答案: 在此页面上,您有两个具有给定xpath的按钮,第一个不可见,这就是为什么您收到ElementNotVisibleException的