You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium点击Yesterday按钮报错:ElementClickInterceptedException求助

解决Selenium点击CoinPoker排行榜Yesterday按钮时的ElementClickInterceptedException错误

问题场景

需点击CoinPoker排行榜页面的Yesterday按钮复制昨日数据,点击后解析下方数据,但执行点击时触发ElementClickInterceptedException错误,提示元素在点(1151,1563)不可点击。

错误信息

DevTools listening on ws://127.0.0.1:50944/devtools/browser/3fb9b8ce-215c-405f-918c-8e232e4f7379
Traceback (most recent call last):
  File "d:\Programowanie_new\coin_poker_lb\main.py", line 17, in <module>
    click_button.click()
  File "C:\Users\pkuzi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 94, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\pkuzi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webelement.py", line 395, in _execute
    return self._parent.execute(command, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\pkuzi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "C:\Users\pkuzi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (1151, 1563)

已尝试的代码

代码1:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()
driver.get("https://coinpoker.com/promotions/daily-cosmic-spins-leaderboard/")

click_button = WebDriverWait(driver, 15).until(
    EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/div/article/div/section[2]/div/div/div[1]/div/div[2]/div/ul/li[2]/button"))
)

click_button.click()

代码2:

click_button = driver.find_element(By.XPATH, "//button[text() = 'Yesterday']")
click_button.click()

解决方案

该错误通常是元素被页面其他元素(弹窗、导航栏、广告、滚动后不可见)遮挡导致,可尝试以下几种解决方法:

1. 滚动到元素可见位置后点击

先将页面滚动到按钮所在位置,确保元素完全可见再执行点击:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://coinpoker.com/promotions/daily-cosmic-spins-leaderboard/")

click_button = WebDriverWait(driver, 15).until(
    EC.presence_of_element_located((By.XPATH, "//button[text() = 'Yesterday']"))
)

# 滚动到元素位置
ActionChains(driver).move_to_element(click_button).perform()
# 等待元素可点击后执行点击
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[text() = 'Yesterday']"))).click()

2. 使用JavaScript强制点击

跳过Selenium的元素可见性检查,直接通过JS触发点击事件:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()
driver.get("https://coinpoker.com/promotions/daily-cosmic-spins-leaderboard/")

click_button = WebDriverWait(driver, 15).until(
    EC.presence_of_element_located((By.XPATH, "//button[text() = 'Yesterday']"))
)

# 用JavaScript执行点击
driver.execute_script("arguments[0].click();", click_button)

3. 检查并关闭遮挡元素

如果页面有弹窗(如Cookie提示、广告弹窗),先处理这些遮挡元素:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()
driver.get("https://coinpoker.com/promotions/daily-cosmic-spins-leaderboard/")

# 等待并关闭Cookie弹窗(根据实际页面元素调整选择器)
try:
    cookie_close_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), 'Accept') or contains(text(), 'Close')]"))
    )
    cookie_close_btn.click()
except:
    pass  # 无弹窗则跳过

click_button = WebDriverWait(driver, 15).until(
    EC.element_to_be_clickable((By.XPATH, "//button[text() = 'Yesterday']"))
)
click_button.click()

4. 调整浏览器窗口大小

确保浏览器窗口足够大,避免元素被窗口边缘截断:

driver = webdriver.Chrome()
driver.maximize_window()  # 最大化窗口
driver.get("https://coinpoker.com/promotions/daily-cosmic-spins-leaderboard/")

# 后续点击逻辑...

内容的提问来源于stack exchange,提问作者KurczakChrupiacy2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:32:14