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

Chrome 116.x(Mac)下Selenium驱动权限错误问题求助

解决Chrome 115+版本Selenium驱动权限错误及代码问题

核心问题分析

  1. 文件混淆:Chrome 115+版本后,你下载的Google Chrome for Testing.app是测试版Chrome浏览器,并非chromedriver驱动程序。真正的chromedriver仍是独立的可执行文件,只是下载入口迁移到了Chrome for Testing的资源体系中。
  2. 代码重复初始化:当前代码里两次调用webdriver.Chrome(),第一次错误指向浏览器应用路径,第二次使用传入的seleniumDriver参数,逻辑冗余且易引发资源冲突。
  3. 权限问题:若已下载正确的chromedriver,出现权限错误通常是因为驱动文件缺少可执行权限(仅针对macOS/Linux系统)。

分步解决方案

1. 获取正确的chromedriver

选择与你的Chrome 116.x版本匹配的chromedriver(区分操作系统:macOS/Windows/Linux),下载后得到独立的可执行文件(mac/Linux下为chromedriver,Windows下为chromedriver.exe)。

2. 修复权限(macOS/Linux)

打开终端,进入chromedriver所在目录,执行命令赋予可执行权限:

chmod +x chromedriver

3. 修正代码逻辑

移除重复的webdriver.Chrome()初始化,将配置整合到一次初始化中,确保路径指向正确的驱动文件:

def __init__(self, seleniumDriver):
    from selenium import webdriver

    try:
        options = webdriver.ChromeOptions()
        options.add_argument("start-maximized")
        options.add_experimental_option("excludeSwitches", ["enable-automation"])
        options.add_experimental_option('useAutomationExtension', False)
        
        # 仅初始化一次driver,传入正确的驱动路径
        self.driver = webdriver.Chrome(options=options, executable_path=seleniumDriver)
        
        # 执行CDP命令,无需重复执行
        self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
            "source": """
            Object.defineProperty(navigator, 'webdriver', {
              get: () => undefined
            })
          """
        })
        self.driver.execute_cdp_cmd("Network.enable", {})
    except Exception as e:
        print(e)

额外提示

如果使用Selenium 4.6及以上版本,可借助自动驱动管理功能,无需手动指定路径:安装chromedriver-manager包后,代码中只需初始化Chrome()并传入options,框架会自动匹配对应版本的驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:55:16