- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在Alpine 3.10 docker容器中运行GeckoDriver v0.26.0,特别是python:3.6.6-alpine3.10
。
在弄清楚一些事情之后,我碰壁了:
/ # geckodriver --version
Error relocating /usr/bin/geckodriver: __register_atfork: symbol not found
Error relocating /usr/bin/geckodriver: __res_init: symbol not found
docker run -it python:3.6.9-alpine3.10 /bin/sh
/ # wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
/ # tar -zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/bin
/ # geckodriver --version
/bin/sh: geckodriver: not found.
$PATH
是否正确?
/ # ls -lah /usr/bin/geckodriver
-rwxr-xr-x 1 1000 1000 6.7M Oct 12 10:19 /usr/bin/geckodriver
/ # echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
file
info。默认情况下,Alpine没有。
/ # apk add file
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
(1/2) Installing libmagic (5.37-r1)
(2/2) Installing file (5.37-r1)
Executing busybox-1.30.1-r2.trigger
OK: 24 MiB in 36 packages
/ # file /usr/bin/geckodriver
/usr/bin/geckodriver: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.26, BuildID[sha1]=32c4cfc2d9346336dc7c20e99a62df9be344d609, with debug_info, not stripped
/lib64/ld-linux-x86-64.so.2
:
/ # ls /lib64
ls: /lib64: No such file or directory
libc6-compat
的一部分。酷安装,一切都会起作用...对吗?
/ # apk add libc6-compat
(1/1) Installing libc6-compat (1.1.22-r3)
OK: 24 MiB in 37 packages
/ # ls /lib64
ld-linux-x86-64.so.2
/ # geckodriver --version
Error loading shared library libgcc_s.so.1: No such file or directory (needed by /usr/bin/geckodriver)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /usr/bin/geckodriver)
Error relocating /usr/bin/geckodriver: __register_atfork: symbol not found
Error relocating /usr/bin/geckodriver: _Unwind_Resume: symbol not found
Error relocating /usr/bin/geckodriver: __res_init: symbol not found
Error relocating /usr/bin/geckodriver: _Unwind_GetIP: symbol not found
Error relocating /usr/bin/geckodriver: _Unwind_Backtrace: symbol not found
libgcc_s.so.1
。
That's in libgcc。说得通。
/ # apk add libgcc
(1/1) Installing libgcc (8.3.0-r0)
OK: 24 MiB in 38 packages
/ # geckodriver --version
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /usr/bin/geckodriver)
Error relocating /usr/bin/geckodriver: __register_atfork: symbol not found
Error relocating /usr/bin/geckodriver: __res_init: symbol not found
ld-linux-x86-64.so.2
中有
/lib64
,它在哪里看?我确实注意到
gcompat
包为
/lib/ld-linux-x86-64.so.2
,也许它在那儿?
# / apk add gcompat
(1/2) Installing libucontext (0.1.3-r1)
(2/2) Installing gcompat (0.4.0-r0)
OK: 24 MiB in 40 packages
# / geckodriver --version
Error relocating /usr/bin/geckodriver: __register_atfork: symbol not found
Error relocating /usr/bin/geckodriver: __res_init: symbol not found
__register_atfork
和
__res_init
不会返回任何有用的信息。
最佳答案
因此,此问题的根本原因似乎是Alpine使用musl libc,而GeckoDriver(间接地)使用glibc。
SGerrand有一个很棒的glibc compatibility layer package for Alpine Linux,我们将利用它。
要在Alpine上运行GeckoDriver,请执行以下操作:
# Get all the prereqs
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-2.30-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-bin-2.30-r0.apk
apk add glibc-2.30-r0.apk
apk add glibc-bin-2.30-r0.apk
# And of course we need Firefox if we actually want to *use* GeckoDriver
apk add firefox-esr=60.9.0-r0
# Then install GeckoDriver
wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
tar -zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/bin
geckodriver --version
python:3.6.9-alpine3.10
docker镜像上进行了测试。 关于docker - 在Alpine docker容器中运行geckodriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58738920/
我创建了一个测试脚本,使用 python 在 Eclipse 中打开一个 url,但出现以下错误: Traceback (most recent call last): File "/Librar
我有一些 Robot Framework使用 SeleniumLibrary 的测试套件.我使用 Firefox 和 geckodriver 运行这些测试。每当我运行测试套件时,都会创建一个 geck
在我的应用程序中,我无法使用 System.setProperty 设置 geckodriver 可执行位置,并且无法在路径中设置它。为什么?因为我的应用程序是 Multi-Tenancy 的....
我列出了系统中安装的当前 npm 版本以及尝试安装 geckodriver 时发生的错误。我阅读了 [npm 模块版本] - [geckodriver 版本]1.10.x - geckodriver
我对 Pycharm 或 Python 的了解不够深,无法解决问题所在。在我看来,似乎应该执行这段简单的代码,但我得到了一堆对我来说没有任何意义的文本。 使用 Selenium 的其他人会遇到此错误并
当我尝试执行我的第一个 Selenium/python 代码时出现此错误。 selenium.common.exceptions.WebDriverException: Message: 'Gecko
我正在使用 headless ubuntu,并想安装最新的 geckodriver。 所以我必须通过输入命令行来安装。 我的 ubuntu 是 14.04 值得信赖的。 但是,我不知道安装 gecko
我正在做一个简单的机器人,用于使用 selenium 在 java/swing 中自动执行用户任务。 Selenium 需要在客户端计算机上安装 geckodriver。我应该如何交付该驱动程序? 放
驱动程序:geckodriver 0.19.1。 操作系统名称:Microsoft Windows 10 Pro for Workstations 版本:10.0.17134 Build 17134。
我已阅读之前关于此主题的问题并尝试遵循建议,但我仍然遇到错误。在终端上,我跑了 export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-
我正在尝试在 Python 中使用 Selenium。但是,鉴于 https://pypi.python.org/pypi/selenium 的以下内容,我不知道该怎么做 Selenium 需要驱动程
我在 Windows 10 上运行 Selenium 3.141.0 和 python 3.6.7 我的脚本以 headless 方式运行 Firefox 驱动程序,但是来自 geckodriver
新的 geckodriver v0.17.0 有一种新的方式来安装插件,如上所述 here : POST /session/{session id}/window/fullscreen to invo
每次创建另一个测试时都需要添加 geckodriver 吗?例如: public class JUnit4 { @Test public void test1() {
我需要使用扩展来测试 Firefox。我想自动化测试并访问几个网站。 我安装了 Selenium,它在 geckodriver 中打开.但是,扩展不存在。我可以从 about:debugging 手动
我想以机器人方式填写网络表单。我在文档中添加了libraryclient-combined 3.0.0 beta 3。我的firefox版本应该是最新的。 import org.openqa.
我试图在我的 raspberry pi 3 in java 上使用 geckodriver设置 selenium webdriver。当我尝试启动 FirefoxDriver() 的实例时,我收到以下
我正在使用 Selenium/Maven/testng 编写自动测试。 测试在 Windows Server 2016 Standard 虚拟机上执行。 我想检查任务列表是否正在运行 geckodri
我有一个 webelement cells[-1] 我正在尝试单击并在新选项卡中打开它,然后从该页面上的链接下载一些内容,然后将其关闭并返回到原始状态选项卡。 我用过 actions.key_down
Selenium 设计为在处理 webdriver 实例时终止 Geckodriver 进程,如下所示:driver.quit()。在我的测试框架中,我已配置为在每次测试后调用 driver.quit
我是一名优秀的程序员,十分优秀!