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

sha*_*rya 15 linux selenium webdriver selenium-chromedriver gitlab-ci

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

019-09-27T11:03:17.404Z INFO @wdio/cli:Launcher:运行 onPrepare hook /builds/shauryav/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)```
Run Code Online (Sandbox Code Playgroud)

小智 25

试试这些命令

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

  • 好决定。在 WSL 上,需要先运行 apt update 否则找不到库。 (5认同)
  • 好答案。对于那些不知道的人,请确保先运行 ``apt update```。 (2认同)
  • 请注意,现在是 2021 年,此步骤对我在 Ubuntu 20 中安装 puppeteer.js 有用 (2认同)
  • 你好!我对“libnss3.so”有同样的问题。但!我在 Docker 容器内运行 wdio 自动化测试时得到了它。我无法运行“update”、“install”或任何其他对容器进行更改的命令(无权修改容器)。如何让 Chrome 运行?任何建议将不胜感激! (2认同)

Der*_*ers 16

当您看到这种情况时,这意味着您的操作系统缺少预期的低级库。

要解决此问题(Debian/Ubuntu 示例),

  1. 确保您的包索引是最新的。
sudo apt update -y
Run Code Online (Sandbox Code Playgroud)
  1. 在包管理器的包中搜索缺少的包
apt search libnss3
Run Code Online (Sandbox Code Playgroud)
  1. 从搜索结果中确定合适的候选人
Sorting... Done
Full Text Search... Done
libnss3/oldstable,now 2:3.42.1-1+deb10u5 amd64
  Network Security Service libraries

libnss3-dev/oldstable 2:3.42.1-1+deb10u5 amd64
  Development files for the Network Security Service libraries

libnss3-tools/oldstable 2:3.42.1-1+deb10u5 amd64
  Network Security Service tools

nss-passwords/oldstable 0.2-2+b2 amd64
  read passwords from a Mozilla keyring
Run Code Online (Sandbox Code Playgroud)
  1. 安装候选者
Sorting... Done
Full Text Search... Done
libnss3/oldstable,now 2:3.42.1-1+deb10u5 amd64
  Network Security Service libraries

libnss3-dev/oldstable 2:3.42.1-1+deb10u5 amd64
  Development files for the Network Security Service libraries

libnss3-tools/oldstable 2:3.42.1-1+deb10u5 amd64
  Network Security Service tools

nss-passwords/oldstable 0.2-2+b2 amd64
  read passwords from a Mozilla keyring
Run Code Online (Sandbox Code Playgroud)
  1. 再次运行你的命令

如果错误消息消失 => 成功

如果错误消息发生变化 => 重复新的错误消息

如果错误消息没有更改 => 您安装的库没有您需要的文件,因此请卸载并尝试其他库

sudo apt install -y libnss3
Run Code Online (Sandbox Code Playgroud)

也可以看看man apt-get


小智 8

您需要满足库依赖关系才能以无头模式运行 chrome:

sudo apt-get update && sudo apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libnss3 lsb-release xdg-utils wget ca-certificates

了解更多