在树莓派 3 上使用 selenium 和 chromedriver 时出错 - Raspbian Jessie

Posted

技术标签:

【中文标题】在树莓派 3 上使用 selenium 和 chromedriver 时出错 - Raspbian Jessie【英文标题】:Error using selenium with chromedriver on raspberry Pi 3 - Raspbian Jessie 【发布时间】:2017-07-18 11:21:42 【问题描述】:

我尝试执行这个 ::

from selenium import webdriver
import time
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import schedule
from datetime import datetime

driver = webdriver.Chrome('/home/pi/Documents/chromedriver')
driver.get('http://google.com')
time.sleep(5)

这是我得到的错误:

Traceback (most recent call last):
  File "test2.py", line 12, in <module>
    driver = webdriver.Chrome('/home/pi/Documents/chromedriver')  # Optional arg$
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 62, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 8] Exec format error

有人知道怎么解决吗? 我也试过用 firefox 和 xvfb 暂时没有成功。

这是在 '.bashrc' 中定义的路径:

export $PATH=$PATH:/home/pi/Documents/chromedriver

【问题讨论】:

尝试在 raspian 像素上使用 chromedriver 时遇到同样的错误。 【参考方案1】:

不确定这是否会对您有所帮助,但我使用此帮助程序脚本在我的 Ubuntu 机器上设置了我的 selenium 环境(树莓派应该足够相似)。安装 setupdriver.sh

echo "removing chromium-browser"
sudo apt-get purge chromium-browser
rm ~/.config/chromium/ -rf
echo "removing chrome"
sudo apt-get purge google-chrome-stable
rm ~/.config/google-chrome/ -rf
sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
echo "installing Chrome"
echo "getting libxi6"
sudo apt-get install libxi6 libgconf-2-4
echo "getting chromedriver2.27"
wget -N https://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip
echo "unzipping chromedriver2.27"
unzip chromedriver_linux64.zip
echo "exe chromedriver"
chmod +x chromedriver
echo "removing /usr/local/share/chromedriver"
sudo rm -rf /usr/local/share/chromedriver
echo "removing /usr/local/bin/chromedriver"
sudo rm -rf /usr/local/bin/chromedriver
echo "removing /usr/bin/chromedriver"
sudo rm -rf /usr/bin/chromedriver
echo "moving chromedriver to local/share"
sudo mv -f chromedriver /usr/local/share/chromedriver
echo "linking to bin"
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
echo "linking to local bin"
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

所以尝试将该代码复制到 shell 文件中。 chmod +x 文件,然后sh filename.sh 或者您可以将每个步骤直接复制到终端中。

【讨论】:

谢谢你的脚本,我试过了,还是没解决,还是一样的错误 似乎 chromedriver 不适用于 ARM 架构......太糟糕了:( 我找到了这个驱动程序,它可以工作github.com/electron/electron/releases/download/v1.6.0/…【参考方案2】:

我不得不使用这个旧版驱动程序:

https://github.com/electron/electron/releases/download/v1.6.0/chromedriver-v2.21-linux-armv7l.zip

【讨论】:

【参考方案3】:

根据这篇文章,the command to install chromedriver 如下:

sudo apt-get install chromium-chromedriver

您将在系统中获得 74.0.3729.157 版本的 ChromeDriver。

【讨论】:

以上是关于在树莓派 3 上使用 selenium 和 chromedriver 时出错 - Raspbian Jessie的主要内容,如果未能解决你的问题,请参考以下文章

如何在树莓派上安装Android 6.0系统

如何在树莓派上安装python和GPIO库

手把手教你树莓派3 启动wifi模块

树莓派3B/3B+和4B安装OpenCV教程

在树莓派2代B型/3代 上安装Fedora23 - Installing Fedora 23 on Raspberry Pi 2 model B or Raspberry Pi 3

简单介绍一下树莓派zero w