【问题标题】:Run Docker "Chrome Selenium Webdriver" image on Raspberry pi在 Raspberry pi 上运行 Docker“Chrome Selenium Webdriver”映像
【发布时间】:2020-08-09 18:51:20
【问题描述】:

使用 Python,我正在尝试在 Raspberry PI 3B (Debian 10) 上运行 Google Chrome Webdriver。

我写了一个脚本可以做到这一点,而且效果很好。现在,我想运行这个脚本的 Docker 镜像。

我的脚本:

opts = webdriver.ChromeOptions()
opts.add_argument("--start-maximized")
opts.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=opts, 
                          executable_path=chrome_webdriver_path)  
driver.get("https://google.com/") 
time.sleep(10)
driver.close()

不幸的是,当我尝试使用 docker 运行此代码时出现错误,因为我找不到 google-chrome 网络驱动程序的二进制文件。在 Raspberry PI 3B 中,这些二进制文件位于:

"/usr/lib/chromium-browser/chromium-browser"

我尝试安装 google-chrome-stable,但它不适合 Raspberry Pi。

最后,我的 DOCKERFILE:

FROM python:3.7

# Set workspace
WORKDIR /app

# Install python dependencies
COPY requirements.txt 
RUN pip install -r requirements.txt 

# Copy local files
COPY . .

RUN python main.py

我在一个文件夹中运行我的 docker 代码,上面有脚本和 DOCKERFILE
“docker build -t image_name。”

你知道如何管理吗?

PS:不想切换到 Firefox 或使用远程 Webdriver。

【问题讨论】:

    标签: python docker selenium raspberry-pi


    【解决方案1】:

    您是否在 docker 容器运行时安装了 headless chrome?您需要有一个与您的 selenium chrome webdriver 匹配的无头 chrome。

    【讨论】:

    • 是的,在我的选项中 -> 选择。它可以运行“python main.py”
    • 不,您在选项中设置的是 webdriver 路径,而不是无头 chrome。您必须安装无头 chrome,这与 chrome webdriver 完全不同。 selenium 的工作方式是使用 webdriver 作为应用程序和真实 Web 浏览器之间的桥梁。在您的情况下,真正的网络浏览器是您缺少的无头 chrome。 Webdriver 只是在真实浏览器和应用程序之间转发浏览数据的桥梁。真正的工作是在 chrome 中完成的,可以是真正的 chrome 浏览器,也可以是无头 chrome 浏览器。
    • 好吧,我尝试将 google-chrome-stable 和 google-standalone 下载到我的 docker 容器中,但没有成功。所以我想我只需要传递 ("--headless") 选项
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多