Selenium为何抛出‘Exec format error’错误?已安装Chrome仍报错
解决Selenium在Orange Pi上的Exec format error问题
问题根源
你使用的Orange Pi是ARM架构设备,而默认安装的Selenium自带的selenium-manager是x86_64架构的二进制文件,两者架构不兼容,导致执行时抛出Exec format error。
解决方案
方案一:手动指定ChromeDriver路径
- 先查看当前Chrome版本:
google-chrome --version - 下载与Chrome版本完全匹配的ARM版ChromeDriver,解压后将
chromedriver文件放到系统可执行路径(比如/usr/local/bin/),并赋予执行权限:chmod +x /usr/local/bin/chromedriver - 修改代码指定驱动路径:
from selenium import webdriver from selenium.webdriver.chrome.service import Service import time # 替换为你放置chromedriver的实际路径 service = Service(executable_path='/usr/local/bin/chromedriver') driver = webdriver.Chrome(service=service) driver.get('https://www.google.com') time.sleep(10) driver.quit()
方案二:编译安装适配ARM架构的Selenium
- 先卸载现有Selenium:
pip uninstall selenium -y - 安装编译依赖并从源码编译Selenium:
编译完成后,生成的sudo apt install git python3-pip build-essential -y git clone https://github.com/SeleniumHQ/selenium.git cd selenium pip install .selenium-manager会适配你的ARM架构。
方案三:用webdriver-manager自动管理驱动
- 安装webdriver-manager库:
pip install webdriver-manager - 修改代码使用该库自动获取驱动:
这个库会自动识别系统架构,下载对应版本的ChromeDriver,绕开Selenium Manager的架构兼容问题。from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service import time service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service) driver.get('https://www.google.com') time.sleep(10) driver.quit()
内容的提问来源于stack exchange,提问作者user23448952
相关产品推荐
相关产品推荐

