首页 > 解决方案 > 如何通过 Selenium 在嵌入式 Linux 上使用 Chromium

问题描述

环境:

  1. 目标板上的嵌入式 linux 系统
  2. 安装了铬(不是谷歌浏览器)
  3. 我可以通过 /usr/bin/chromium www.google.com 访问
  4. 安装了 python 模块 selenium.webdriver

问题描述:

  1. 铬版本是“铬 71.0.3545.0 稳定版”,我的板上没有 google-chrome。lrwxrwxrwx 1 root root 34 Nov 29 00:14 /usr/bin/chromium -> /usr/lib/chromium/chromium-wrapper

  2. 我下载了“ChromeDriver 2.45”->“chromedriver_linux64.zip”,上面写着“支持 Chrome v70-72”,解压并将“chromedriver”放到 /usr/bin

  3. 然后我按照以下步骤进行操作并收到此类错误

    Python 2.7.15 (default, Nov 26 2018, 01:36:34)
    [GCC 7.3.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from selenium.webdriver.chrome.options import Options
    >>> from selenium import webdriver
    >>> opts=Options()
    >>> opts.binary_location="/usr/bin/chromedriver"
    >>> driver=webdriver.Chrome(chrome_options=opts)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python2.7/site-p 
    packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
    File "/usr/lib/python2.7/site- 
    packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
    File "/usr/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
    File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
    OSError: [Errno 8] Exec format error
    

标签: pythonseleniumselenium-chromedriverembedded-linuxchromium

解决方案


当您在目标板上使用嵌入式 linux 系统Chromium 71.0时,"ChromeDriver 2.45" ->"chromedriver_linux64.zip"您需要从此链接下载chromedriver-v2.21-linux-armv7l并在您的程序中使用它,如下所示:

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
opts=Options()
opts.binary_location='/path/to/chrome' #Chromium 71.0 executable binary
driver = webdriver.Chrome(chrome_options=opts, executable_path='/path/to/chromedriver.exe')

您可以在以下位置找到一些相关的讨论:


推荐阅读