如何解决无界面树莓派运行Selenium v.4.35.0的报错问题?
树莓派无界面运行Selenium 4.35.0问题解决
问题背景
已在无界面树莓派上安装Chromium、Chromedriver(文件均位于/usr/bin/),使用Selenium 4.35.0时出现两个报错:
- 直接初始化
webdriver.Chrome()抛出NoSuchDriverException - 指定Chromedriver路径后抛出
SessionNotCreatedException,附带未知堆栈跟踪
问题原因
- NoSuchDriverException:Selenium 4.x的自动驱动管理机制未识别到树莓派上的Chromium浏览器路径,无法自动匹配驱动。
- SessionNotCreatedException:未配置无界面运行参数、Chromium与Chromedriver版本不匹配,或缺少树莓派环境必要的启动参数。
解决步骤
1. 确认版本匹配
先检查Chromium和Chromedriver的主版本是否一致:
chromium-browser --version chromedriver --version
两者主版本号必须完全相同(例如均为118.x),若版本不匹配,需重新下载对应版本的Chromedriver。
2. 配置完整启动参数
使用ChromeOptions指定无界面模式、浏览器二进制路径及树莓派专属参数,修正后的代码如下:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # 配置Chrome选项 options = Options() options.add_argument("--headless=new") # 无界面模式(Selenium 4.10+推荐) options.add_argument("--no-sandbox") # 绕过沙箱(树莓派普通用户需加) options.add_argument("--disable-dev-shm-usage") # 避免内存不足问题 options.binary_location = "/usr/bin/chromium-browser" # 指定Chromium路径 # 指定驱动服务 service = Service("/usr/bin/chromedriver") # 初始化驱动 driver = webdriver.Chrome(service=service, options=options) # 后续操作示例 driver.get("https://example.com") print(driver.title) driver.quit()
3. 检查权限
确保chromedriver有可执行权限:
sudo chmod +x /usr/bin/chromedriver
内容的提问来源于stack exchange,提问作者micawber
相关产品推荐
相关产品推荐

