运行 Gitlab CI 作业以使用 webdriverio 执行自动化测试时出现“加载共享库时出错:libnss3.so”

Posted

技术标签:

【中文标题】运行 Gitlab CI 作业以使用 webdriverio 执行自动化测试时出现“加载共享库时出错:libnss3.so”【英文标题】:"Error while loading shared libraries: libnss3.so" while running Gtlab CI job to perform automated testing using webdriverio 【发布时间】:2020-01-27 19:04:12 【问题描述】:

我正在 Gitlab CI 中为 selenium 中的自动化测试设置 CI 作业,但由于该问题,测试失败。

019-09-27T11:03:17.404Z INFO @wdio/cli:Launcher: 运行 onPrepare 钩子 /builds/shuryav/test-react-ci-cd/node_modules/chromedriver/lib/chromedriver/chromedriver:加载共享库时出错:libnss3.so:无法打开共享对象文件:没有这样的文件或目录

我已经尝试了许多解决方案,例如安装包 "@wdio/cli": "^5.13.2", "webdriverio": "^5.13.2" 但没有任何效果。对于注释,我没有使用任何 docker 设置

/builds/shauryav/test-react-ci-cd/node_modules/chromedriver/lib/chromedriver/chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
2019-09-27T11:03:27.415Z ERROR @wdio/cli:utils: A service failed in the 'onPrepare' hook
Error: timeout
    at Timeout.timeoutFunc (/builds/shauryav/test-react-ci-cd/node_modules/tcp-port-used/index.js:204:25)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)```

【问题讨论】:

libnss3.so: 没有这样的文件或目录 → 安装 libnss (Debian, Ubuntu) / nss (Fedora, CentOS)。 @KnudLarsen 无法在 ubuntu:16.04 上找到软件包 libnss 16.04 : libnss3 .... apt-cache search libnssapt-file search libnss3.so .... 或使用在线搜索 packages.ubuntu.com/search?keywords=libnss&searchon=names ... 来确定包名称. 【参考方案1】:

试试这些命令

apt install libnss

apt install libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev

如果上面的命令不起作用,那就去下面的一个

sudo apt install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev

【讨论】:

好答案。对于那些不知道的人,请确保您先运行apt update 好电话。在 WSL 上,需要先运行 apt update 否则找不到库。 请注意,现在是 2021 年,这一步对我在 Ubuntu 20 中安装 puppeteer.js 很有效 这在 Ubuntu (WSL2) 上也适用于我,尽管我不需要任何 -dev 版本(构建 chromium 需要这些版本,而不是简单地运行它)。

以上是关于运行 Gitlab CI 作业以使用 webdriverio 执行自动化测试时出现“加载共享库时出错:libnss3.so”的主要内容,如果未能解决你的问题,请参考以下文章

运行 Gitlab CI 作业以使用 webdriverio 执行自动化测试时出现“加载共享库时出错:libnss3.so”

GITLAB CI 管道,仅使用 git 标签运行作业

如何将值传递给 Gitlab CI 作业

我如何在 gitlab-ci 中同时运行循环?

如何使用彼此独立的不同运行器运行 Gitlab CI 作业?

GitLab CI 对 Docker 构建作业的无效参数