ElementNotInteractableException:消息:尝试使用 Selenium 和 Python 单击元素时,元素无法滚动到视图中

2024-02-25

我有这个代码:

driver.switch_to.window(window_after)

try:
    myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.NAME, '_eventId_confirmed')))
    print ("Page 2 is ready!")
except TimeoutException:
    print ("Loading took too much time!")

btn = driver.find_element_by_name('_eventId_confirmed')

btn.click()

正如你所看到的,我首先切换窗口,然后检查一个元素,获取该元素(一个按钮),最后尝试单击该按钮。这可能有三分之二的效果,但经常会失败并显示此错误消息

selenium.common.exceptions.ElementNotInteractableException: Message: Element <button class="btn" name="_eventId_confirmed"> could not be scrolled into view

当在执行时直观地查看流程时,一切似乎都很好(我的第一个猜测是窗口切换没有按预期工作)并且浏览器最终处于预期状态,我可以手动单击此按钮。有趣的是,当这个错误发生时,没有超时或类似的情况,它在执行过程中立即发生。

有什么想法吗?


当您尝试单击的元素存在于页面上但它不完全可见并且 selenium 尝试单击的点不可见时,通常会出现此问题。
这种情况下,可以使用javascript来点击元素,实际上是直接操作页面的html结构。
您可以像这样使用它:

element = driver.find_element_by_name("_eventId_confirmed")
driver.execute_script("arguments[0].click();", element)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElementNotInteractableException:消息:尝试使用 Selenium 和 Python 单击元素时,元素无法滚动到视图中 的相关文章

随机推荐