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

Mac环境下无法连接Selenium Chrome服务问题求助

解决Mac上Selenium无法连接Chromedriver的问题

可能的解决方案

1. 确保Chrome浏览器与Chromedriver版本完全匹配

Chromedriver的主版本号必须和你的Chrome浏览器保持一致:

  • 打开Chrome,在地址栏输入 chrome://version/ 查看当前浏览器版本(例如136.0.7103.92)
  • 确认WebDriverManager安装的chromedriver版本是否与Chrome版本对应
  • 若版本不匹配,可手动下载对应版本的chromedriver,替换现有文件或指定路径给Service

2. 修复Chromedriver的执行权限

Mac系统可能限制未签名可执行文件的运行,或文件缺少执行权限:

  • 打开终端,执行以下命令(替换为你的chromedriver实际路径):
    chmod +x /Users/michaelgelberg/.wdm/drivers/chromedriver/mac64/136.0.7103.92/chromedriver-mac-x64/chromedriver
    
  • 若遇到“Apple无法检查是否包含恶意软件”提示:打开系统设置→隐私与安全性,找到对应提示并点击“仍要打开”

3. 更新Headless模式参数

Chrome 112+版本对Headless模式做了更新,旧参数可能导致连接问题:

  • 将代码中的chrome_options.add_argument("--headless")替换为:
    chrome_options.add_argument("--headless=new")
    

4. 添加额外Chrome参数规避安全限制

尝试添加以下参数减少系统安全设置的干扰:

chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--remote-debugging-port=9222")

5. 手动指定Chromedriver路径(跳过WebDriverManager)

如果WebDriverManager存在缓存或版本识别问题,可手动下载chromedriver并指定路径:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

def test_selenium():
    print("Setting up Chrome options...")
    chrome_options = Options()
    chrome_options.add_argument("--headless=new")
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")
    
    print("Initializing Chrome driver...")
    # 替换为你手动下载的chromedriver路径
    driver = webdriver.Chrome(
        service=Service("/Users/xxx/Downloads/chromedriver"),
        options=chrome_options
    )
    
    try:
        print("Attempting to access a test website...")
        driver.get("https://www.google.com")
        print("Successfully loaded Google!")
        print(f"Page title: {driver.title}")
    except Exception as e:
        print(f"Error occurred: {str(e)}")
    finally:
        print("Closing browser...")
        driver.quit()

if __name__ == "__main__":
    test_selenium()

6. 重置WebDriverManager缓存

缓存目录可能存在损坏文件,删除后重新下载:

rm -rf /Users/michaelgelberg/.wdm/

重新运行代码,WebDriverManager会自动重新下载适配的chromedriver

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:25:09