M1 Mac上Selenium Chrome运行缓慢问题及ChromeDriver相关疑问
问题解决思路
一、M1 Mac上Selenium Chrome运行缓慢的优化方案
针对窗口加载迟缓、帧率低的问题,可尝试以下优化方向:
确保Chrome与ChromeDriver为ARM64原生版本
M1 Mac运行x86架构程序会通过Rosetta转译,大幅降低性能。检查Chrome版本(菜单>关于Google Chrome,确认标注“Apple Silicon”);WebDriverManager默认会适配架构下载ChromeDriver,可手动验证下载的驱动是否为arm64版本。添加Chrome性能优化启动参数
修改Options配置,禁用不必要的后台功能与渲染限制:options = Options() options.add_experimental_option("detach", True) # 性能优化参数 options.add_argument("--disable-gpu") options.add_argument("--disable-extensions") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-background-timer-throttling") options.add_argument("--disable-renderer-backgrounding") options.add_argument("--no-sandbox") # M1环境可尝试开启替换窗口最大化方式
放弃maximize_window(),直接设置固定分辨率窗口,规避系统动画开销:# 替换driver.maximize_window() driver.set_window_size(1920, 1080) # 可根据你的屏幕分辨率调整清理后台占用资源的进程
通过Activity Monitor关闭无关的高CPU/GPU占用进程,释放M1的硬件资源。
二、关于ChromeDriver初始化的疑问
Selenium 4.6及以上版本内置了Selenium Manager工具,它会自动完成:
- 检测本地Chrome版本
- 下载匹配版本的ChromeDriver
- 配置驱动路径到环境变量
因此无需手动通过Service(ChromeDriverManager().install())指定驱动,代码可简化为:
from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options options = Options() options.add_experimental_option("detach", True) driver = Chrome(options=options) driver.get("https://google.com/xhtml")
早期Selenium版本需要手动管理ChromeDriver的下载与路径配置,新版本的自动管理功能已替代第三方webdriver_manager工具的作用。
内容的提问来源于stack exchange,提问作者IOSCodingMax
相关产品推荐
相关产品推荐

