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

Python Selenium WebDriver click()方法失效问题排查与解决

Fix for Selenium WebDriver Click() Not Executing (No Errors, Element Located)

遇到过一模一样的诡异问题!先给你直接说最终解决办法,再理清楚整个排查过程:

最终解决方案

检查你的Chrome浏览器缩放级别,如果低于100%(比如你遇到的33%),把它恢复到100%默认缩放,WebDriver的click()方法就能正常触发点击操作了。

问题回顾与排查步骤

你的场景太典型了:用Python+Selenium做自动化测试,click()方法无报错但完全没反应,元素能正常定位(能打印出按钮文本"Courses"),代码长期未改动却突然失效。

我帮你梳理下有效的排查路径:

  1. 先排除版本兼容问题:更新ChromeDriver到对应Chrome版本的最新版、升级Selenium库、甚至更新/降级Chrome浏览器,结果问题依旧,说明不是版本不兼容导致的。
  2. 忽略非关联错误:终端里的SSL握手错误ERROR:ssl_client_socket_impl.cc(960)] handshake failed,之前存在时功能正常,所以可以直接排除它是诱因。
  3. 重置Chrome用户环境:清空自定义的Chrome用户数据文件夹、清除本地缓存文件后,功能突然恢复——这说明问题出在用户配置里,而非代码或驱动本身。

进一步定位后发现,核心原因是:WebDriver的点击操作是基于元素的坐标位置计算的,当Chrome缩放级别过低时,坐标计算会出现偏移,导致点击事件无法命中目标元素,但因为元素本身能被定位到,所以不会抛出任何错误。

附验证测试脚本

你写的测试脚本可以完美复现并验证问题,这里稍微优化下路径处理:

import pathlib
import time
from selenium import webdriver

url = "https://www.geeksforgeeks.org/"
path_to_chromedriver_user_data = pathlib.Path(__file__).parent.parent.joinpath("chromedriver/chrome user data").resolve()
path_to_chromedriver = pathlib.Path(__file__).parent.parent.joinpath("chromedriver").resolve()

options = webdriver.ChromeOptions()
options.add_argument(f'user-data-dir={path_to_chromedriver_user_data}')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(executable_path=f'{path_to_chromedriver}/chromedriver', options=options)
driver.set_page_load_timeout(30)
driver.get(url)
time.sleep(1)

button = driver.find_element_by_xpath("/html/body/div[2]/div[1]/ul[1]/li[3]/a")
print(button.text)  # 输出"Courses"确认元素定位成功
button.click()
time.sleep(10)
driver.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:17:41