Dav*_*ave 16 linux node.js selenium-chromedriver selenium-webdriver
我在这个版本的Linux上使用节点5.10.0
[davea@mydevbox mydir]$ uname -a
Linux mydevbox.mydomain.com 7.3.8-25.26.amzn1.x86_64 #1 SMP Wed Mar 16 17:15:34 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
运行我的脚本时出现以下错误("服务器提前终止,状态为127").我已经确认我可以使用"wget"来访问相关网址,所以我不知道还有什么我需要让这件事工作......
[davea@mydevbox mydir]$ node myscript.js
Validation Complete
/home/davea/node_modules/selenium-webdriver/lib/promise.js:654
throw error;
^
Error: Server terminated early with status 127
at Error (native)
at /home/davea/node_modules/selenium-webdriver/remote/index.js:242:20
at ManagedPromise.invokeCallback_ (/home/davea/node_modules/selenium-webdriver/lib/promise.js:1343:14)
at TaskQueue.execute_ (/home/davea/node_modules/selenium-webdriver/lib/promise.js:2868:14)
at TaskQueue.executeNext_ (/home/davea/node_modules/selenium-webdriver/lib/promise.js:2851:21)
at /home/davea/node_modules/selenium-webdriver/lib/promise.js:2730:27
at /home/davea/node_modules/selenium-webdriver/lib/promise.js:639:7
at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebDriver.createSession()
at acquireSession (/home/davea/node_modules/selenium-webdriver/lib/webdriver.js:107:22)
at Function.createSession (/home/davea/node_modules/selenium-webdriver/lib/webdriver.js:337:12)
at Driver (/home/davea/node_modules/selenium-webdriver/chrome.js:778:38)
at Builder.build (/home/davea/node_modules/selenium-webdriver/builder.js:464:16)
at Object.<anonymous> (/home/davea/mydir/js/Optimus.js:14:4)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
From: Task: WebDriver.navigate().to(http://localhost:8081/myproject)
at Driver.schedule (/home/davea/node_modules/selenium-webdriver/lib/webdriver.js:386:17)
at Navigation.to (/home/davea/node_modules/selenium-webdriver/lib/webdriver.js:1029:25)
at Driver.get (/home/davea/node_modules/selenium-webdriver/lib/webdriver.js:797:28)
at Object.exports.Login.Page (/home/davea/mydir/js/Optimus.js:505:16)
at Object.exports.smokeTest (/home/davea/mydir/js/Optimus.js:2442:19)
at Object.<anonymous> (/home/davea/mydir/SkyNet.js:13:6)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
Run Code Online (Sandbox Code Playgroud)
Joh*_*lph 11
就我而言,我缺少 Java 运行时环境 (JRE)。我在基于 Debian 的 docker 映像中使用 Selenium 运行 e2e 测试,因此apt-get install default-jre
对我有用。遗憾的是,在这种情况下,硒没有给出更有用的错误消息。
正如其他答案所建议的那样,错误消息意味着您有未满足的依赖项。
在我的硒 e2e 测试的情况下,修复是:
apt-get install default-jre
正如@Johannes 所提到的apt-get -f install
用于修复安装apt-get install chromium-browser
确保安装与您的 chromedriver 相关的正确版本的 chrome,例如 chromedriver 2.33 的 chrome 60-62
const options = new chromeDriver.Options();
options.addArguments(
'headless',
'disable-gpu',
);
new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
我遇到了类似的问题,缺少共享库,我通过符号链接 libnss3.so 解决了这个问题:
ln -s /usr/lib/x86_64-linux-gnu/libnss3.so /usr/lib/libnss3.so
如果第一个目录不适合您,请使用以下命令查找:
find /usr/lib/ -name libnss3*
或者
find /usr/lib64/ -name libnss3*
并进行相应的更换。
它可能还需要更新,因此请尝试:
yum update nss