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

MacBook Air M1上Selenium+Python操控Chrome频繁崩溃问题求助

MacBook Air M1 下 Selenium+Chrome 自动化崩溃排查方案

在MacBook Air M1设备上使用Python结合Selenium操控Chrome时,出现浏览器频繁崩溃、无法正常与页面元素交互的异常。已尝试更新Chrome及ChromeDriver版本,仅能通过延长sleep()时长临时避免浏览器关闭,推测存在深层兼容性或配置冲突问题,可通过以下步骤排查:

  • 强制适配M1原生架构:M1为arm64架构,Chrome默认可能运行在Rosetta兼容层,通过指定Chrome二进制路径并添加启动参数强制使用原生版本:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.binary_location = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-gpu")
    # 可选:启用无头模式排除UI层干扰
    # chrome_options.add_argument("--headless=new")
    
    driver = webdriver.Chrome(options=chrome_options)
    
  • 严格匹配Chrome与ChromeDriver版本:通过chrome://version/查看Chrome完整版本号,下载对应arm64版本的ChromeDriver,确保主版本、次版本、修订号完全一致。

  • 清理Chrome后台进程并关闭自动更新:

    1. 打开Chrome偏好设置 -> 关于Chrome,取消自动更新选项
    2. 执行终端命令杀掉所有Chrome相关进程:killall "Google Chrome" 和 killall "Chrome Helper"
  • 使用Selenium Manager自动管理驱动:Selenium 4.6及以上版本自带驱动管理功能,无需手动下载ChromeDriver,直接初始化即可自动匹配适配版本:

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
  • 调整系统权限与安全设置:

    1. 进入系统设置 -> 隐私与安全性 -> 完全磁盘访问权限,添加Chrome应用
    2. 关闭Chrome的安全浏览功能:设置 -> 隐私与安全性 -> 安全浏览,选择“无保护”模式
  • 替换sleep为显式等待:避免依赖固定时长的sleep(),改用WebDriverWait实现元素等待,提升稳定性:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    # 等待目标元素出现,最长等待10秒
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "target-element-id"))
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:55:01