我明白了:
/opt/narjetas/node_modules/selenium-webdriver/lib/error.js:524
let err = new ctor(data.message)
^
WebDriverError: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
at Object.throwDecodedError (/opt/narjetas/node_modules/selenium-webdriver/lib/error.js:524:15)
at parseHttpResponse (/opt/narjetas/node_modules/selenium-webdriver/lib/http.js:587:13)
at Executor.execute (/opt/narjetas/node_modules/selenium-webdriver/lib/http.js:515:28)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
remoteStacktrace: '#0 0x564c9d0c4463 <unknown>\n' +
'#1 0x564c9ce888d8 <unknown>\n' +
'#2 0x564c9ceb0b6a <unknown>\n' +
'#3 0x564c9ceabc05 <unknown>\n' +
'#4 0x564c9ceef802 <unknown>\n' +
'#5 0x564c9ceef2af <unknown>\n' +
'#6 0x564c9cee7443 <unknown>\n' +
'#7 0x564c9ceb83c5 <unknown>\n' +
'#8 0x564c9ceb9531 <unknown>\n' +
'#9 0x564c9d116dce <unknown>\n' +
'#10 0x564c9d11a192 <unknown>\n' +
'#11 0x564c9d0fb93e <unknown>\n' +
'#12 0x564c9d11b103 <unknown>\n' +
'#13 0x564c9d0eed85 <unknown>\n' +
'#14 0x564c9d13c0a8 <unknown>\n' +
'#15 0x564c9d13c239 <unknown>\n' +
'#16 0x564c9d157492 <unknown>\n' +
'#17 0x7f6d909171cf start_thread\n'
}
系统是RHEL 8,以无头模式运行。这在 Windows 上运行没有问题。我已经三次检查了 chromedriver 版本和我的浏览器版本,它们匹配。错误在这一行生成:
let driver = new Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().headless().windowSize(screen))
.build();
它运行在nodejs之上。
Chrome 版本:
[grant@lab backend]$ google-chrome --version
Google Chrome 107.0.5304.87
我正在使用此版本的 chromedriver(次要版本不匹配,但它们不需要匹配,并且这在 Windows 上不会出现任何问题 - 据我所知,当前次要版本没有 Chromedriver)
chromedriver 的权限为 755,并且以用户身份运行(授予)
这不是正确的答案,但如果其他人遇到困难,我只需将 Chrome 换成 Firefox,它就可以像开箱即用的冠军一样工作。
console.log("BUILD 1");
let driver = new Builder()
.forBrowser('firefox')
.setFirefoxOptions(new firefox.Options().headless().windowSize(screen))
.build();
这是我必须做出的唯一改变,而且它立即就出现了。
我有同样的问题,但通过安装 Java openjdk 解决了它
yum install java-1.8.0-openjdk-1.8.0.322.b06 -y
必须再次运行
npm init
,然后就可以正常工作了。