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

Python使用Selenium点击网页接受Cookies按钮无响应问题求解

问题原因

你遇到的问题是该网站使用的tarteaucitronCookie授权插件存在两个常见交互限制:

  1. presence_of_element_located仅校验元素存在于DOM树中,但弹窗加载后会有300-500ms的淡入动画,动画未结束时点击事件会被组件拦截,不会触发同意逻辑
  2. 部分版本的tarteaucitron的点击事件没有直接绑定在按钮元素上,而是绑定在全局监听函数上,直接对元素调用click()不会触发回调

解决方案1:调整等待条件+模拟真实点击

把等待条件替换为element_to_be_clickable,并使用ActionChains模拟用户真实点击流程,避免直接调用元素click()被拦截:

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

driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://data.inpi.fr/recherche_avancee/marques')

# 等待按钮可点击
accept_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "tarteaucitronPersonalize2"))
)
# 等待动画加载完成
time.sleep(0.5)
# 模拟移动到元素再点击
ActionChains(driver).move_to_element(accept_btn).click().perform()

解决方案2:调用插件原生同意函数(最稳定)

直接执行tarteaucitron内置的全局同意函数,绕过元素点击限制:

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

driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://data.inpi.fr/recherche_avancee/marques')

# 等待Cookie弹窗加载完成,确保JS函数已注入
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "tarteaucitronRoot"))
)
time.sleep(0.5)
# 直接调用同意所有Cookie的方法
driver.execute_script("tarteaucitron.userInterface.acceptAll();")

解决方案3:直接注入Cookie绕过弹窗

如果不需要操作弹窗,可直接写入同意状态的Cookie,刷新后弹窗不会再出现,长期运行稳定性最高:

from selenium import webdriver

driver = webdriver.Chrome(executable_path=DRIVER_PATH)
# 先访问一次域名,才能写入对应域名的Cookie
driver.get('https://data.inpi.fr/')
# 写入同意Cookie
driver.add_cookie({
    "name": "tarteaucitron",
    "value": "userconsent=true",
    "domain": ".data.inpi.fr",
    "path": "/"
})
# 再访问目标页面,不会再弹出Cookie窗口
driver.get('https://data.inpi.fr/recherche_avancee/marques')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:15:01