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

6
我尝试执行这个代码:
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 Pixel上使用chromedriver时,我会遇到相同的错误。 - Jason Harris
3个回答

0

不确定这是否对您有所帮助,但我使用此辅助脚本在我的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 或者您可以直接将每个步骤复制并输入到终端中。


谢谢你的脚本,我尝试了但是没有解决问题,错误还是一样的。 - Pierre Dewas
看起来Chromedriver在ARM架构上无法正常工作......太糟糕了:( - Raphaël
我找到了这个驱动程序,它可以正常工作:https://github.com/electron/electron/releases/download/v1.6.0/chromedriver-v2.21-linux-armv7l.zip - Jordan


0
根据这篇文章,安装chromedriver的命令如下所示:

sudo apt-get install chromium-chromedriver

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接