【问题标题】:Element not Clickable ( Chrome + Selenium + Python)元素不可点击(Chrome + Selenium + Python)
【发布时间】:2020-05-14 20:12:28
【问题描述】:
我在 Python 中使用 Chromewebdriver /Selenium
我尝试了几种解决方案(操作、最大化窗口等)来摆脱这个异常但没有成功。
错误是:
selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素 ... 在点(410、513)不可点击。其他元素会收到点击:...
代码:
from selenium import webdriver
import time
url = 'https://www.tmdn.org/tmview/welcome#/tmview/detail/EM500000018203824'
driver = webdriver.Chrome(executable_path = "D:\Python\chromedriver.exe")
driver.get(url)
time.sleep(30)
driver.find_element_by_link_text('Show more').click()
【问题讨论】:
标签:
python
selenium-chromedriver
【解决方案1】:
我在我的 linux 电脑上使用最新的库、python3 和 chromedriver 测试了这段代码。它完美地工作(在我看来)。因此,请尝试更新所有内容并重试(尽量不要离开 chrome)。代码如下:
from selenium import webdriver
import time
url = 'https://www.tmdn.org/tmview/welcome#/tmview/detail/EM500000018203824'
driver = webdriver.Chrome(executable_path = "chromedriver")
driver.get(url)
time.sleep(30)
driver.find_element_by_link_text('Show more').click()
附: chromedriver 与脚本在同一个文件夹中。
【解决方案2】:
感谢您的帮助。
实际上,问题是网页页脚上的面板“我们使用 cookie....”与“显示更多”链接重叠,当驱动程序尝试点击时,该面板拦截了点击。
解决方案是关闭该面板,代码运行良好。
【解决方案3】:
代码工作正常,但如果您在页面加载后在睡眠时间结束之前手动单击其他元素,那么您可以重新创建相同的错误
例如,在网站加载后,我点击元素搜索具有相似图像的商标,然后 selenium 无法找到搜索元素。所以您的代码的其他部分可能正在点击其他元素并加载不同的url,因此
selenium 正在生成此错误。您的代码很好,只需检查冲突情况即可。