You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

树莓派上ChromeDriver与Chromium版本不兼容致Selenium运行异常

解决树莓派上Chromium 56与ChromeDriver版本不匹配的问题

我之前在树莓派上折腾Selenium自动化时,也碰到过一模一样的Chromium和ChromeDriver版本不对齐的问题,给你几个亲测有效的解决思路:

1. 手动下载对应架构的ChromeDriver 56版本

Chromium和ChromeDriver的版本号是严格对应的,你需要的是56.0.2924.84版本的arm架构ChromeDriver:

  • 先确认树莓派的硬件架构,运行命令:
    uname -m
    
    一般树莓派3/4是armv7l,新一点的型号可能是aarch64
  • 找到对应版本的arm版ChromeDriver归档包,解压后把chromedriver文件移动到系统可执行目录:
    sudo mv chromedriver /usr/local/bin/
    sudo chmod +x /usr/local/bin/chromedriver
    
  • 最后在你的Python脚本里指定Chromium的路径(树莓派上默认路径是/usr/bin/chromium-browser)和ChromeDriver路径:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    opts = Options()
    opts.binary_location = '/usr/bin/chromium-browser'
    driver = webdriver.Chrome(
        executable_path='/usr/local/bin/chromedriver',
        options=opts
    )
    

2. 适配树莓派的无头运行参数(必加,除非你有桌面环境)

树莓派大多是无头运行,记得给Chromium加上这些参数避免报错:

opts.add_argument('--headless')
opts.add_argument('--no-sandbox')
opts.add_argument('--disable-dev-shm-usage')
opts.add_argument('--disable-gpu')  # 老版本Chromium可能需要这个

3. 关于apt无法升级Chromium的说明

你遇到的apt-get upgrade提示已是最新版本,是因为树莓派官方源里对应系统版本的Chromium停更了(Chromium 56对应的应该是Raspbian Stretch系统)。如果不想换系统,手动找对应ChromeDriver是最省心的方案,升级系统反而可能带来更多依赖兼容问题。

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

火山引擎 最新活动