node.js抱怨说“当前路径上找不到ChromeDriver”,即使chromedriver在路径上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js抱怨说“当前路径上找不到ChromeDriver”,即使chromedriver在路径上相关的知识,希望对你有一定的参考价值。
我在Linux上使用节点5.10.0。运行我的脚本时出现一些问题,如下所示
[davea@mydevbox mydir]$ node SkyNet.js
Validation Complete
/home/davea/node_modules/selenium-webdriver/chrome.js:185
throw Error(
^
Error: The ChromeDriver could not be found on the current PATH. Please download the latest version of the ChromeDriver from http://chromedriver.storage.googleapis.com/index.html and ensure it can be found on your PATH.
at Error (native)
at new ServiceBuilder (/home/davea/node_modules/selenium-webdriver/chrome.js:185:13)
at getDefaultService (/home/davea/node_modules/selenium-webdriver/chrome.js:362:22)
at Driver (/home/davea/node_modules/selenium-webdriver/chrome.js:771:34)
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)
这是说chromedriver不在我的路上,但我刚从这里下载了相应的版本 - http://chromedriver.storage.googleapis.com/index.html?path=2.9/,正如你所看到的,它在我的路径上
[davea@mydevbox mydir]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/davea/bin:/home/davea/bin:/usr/lib/chromedriver
具有以下权限...
[davea@mydevbox mydir]$ ls -al /usr/lib/chromedriver
-rwxr-xr-x 1 davea evotext 5503600 Feb 3 2014 /usr/lib/chromedriver
所以我很困惑为什么我收到这个错误。任何帮助表示赞赏, - 戴夫
我遇到过同样的问题。我已经通过chromedriver包的路径解决了这个问题。
这是我的代码:
import webdriver from 'selenium-webdriver';
import chrome from 'selenium-webdriver/chrome';
import chromedriver from 'chromedriver';
chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
这是基于这个答案的代码:Passing require('chromedriver).path directly to selenium-webdriver
对于那些不使用Babel的人来说,加上Niels的回答
- 首先使用npm安装chromedrive软件包。如果全局安装,请确保在路径中包含节点包
npm install -g chromedriver
如果PATH错误仍然存在,只需将其保存到本地项目的依赖项中
npm install --save chromedriver
- 对于那些不使用巴别塔的人
let webdriver = require('selenium-webdriver'); let chrome = require('selenium-webdriver/chrome'); let chromedriver = require('chromedriver'); chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
对于我的小selenium-webdriver
测试我在网上和这里研究后做了这些步骤:
npm install selenium-webdriver
npm install chromedriver
npm install geckodriver
并打开文件library.js和npm init
并运行node library.js
(源代码如下)Error:
(node:14212) UnhandledPromiseRejectionWarning: NoSuchSessionError: invalid session id
与不同的chromedriver版本相关的一些长错误。所以我在浏览器中手动检查了Chrome浏览器版本。这是version 73
和我的错误,我已下载chromedriver version 74.0
。- 所以,请根据您的操作系统下载
https://chromedriver.storage.googleapis.com/index.html?path=73.0.3683.68/
,并在~/Downloads
下载。 - 然后在
terminal
文件夹中打开~/Downloads
。 - 然后
USER@DESKTOP:~/Downloads$ unzip ~/Downloads/chromedriver_linux64.zip -d ~/Downloads
您将获得chromedriver
文件夹中的原始~/Downloads
文件。 - 现在我将
ChromeDriver 73.0.3683.68
文件移动到我的系统中的两个地方 -usr/local/bin
和usr/bin
。 - 在
chromedriver
已经有一个usr/local/bin
文件。 - 移动文件 -
USER@DESKTOP:~/Downloads$ sudo mv -f ~/Downloads/chromedriver /usr/local/bin/chromedriver
和USER@DESKTOP:~/Downloads$ sudo mv -f ~/Downloads/chromedriver /usr/bin/chromedriver
你说要将文件chromedriver从第一个位置移动到其他位置意味着用相同的名称替换那些位置中已有的文件。 - 最后我做的就是。关闭vscode并重新启动它。并运行我的代码
node library.js
。它为我的Chrome浏览器工作。
消息代码:LIBRARY.JS
var webdriver = require('selenium-webdriver');
var By = webdriver.By;
var until = webdriver.until;
var driver = new webdriver.Builder().forBrowser('chrome').build();
driver.get('https://www.google.com');
可能有点晚了但是如果有人遇到这个问题,我可以做以下工作:
第一个npm install -g chromedriver --save
然后在代码require('chromedriver');
上添加此行
这是一个演示
require('chromedriver');
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://google.com');
有关详细信息,请访问:https://www.npmjs.com/package/chromedriver
以上是关于node.js抱怨说“当前路径上找不到ChromeDriver”,即使chromedriver在路径上的主要内容,如果未能解决你的问题,请参考以下文章