I’m using node 5.10.0 on Linux. Having some issues running my script, which are displayed below
[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)
It is saying chromedriver isn’t on my path, but I just downloaded the appropriate version from here — http://chromedriver.storage.googleapis.com/index.html?path=2.9/ , and as you can see, it is on my PATH
[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
with the following permissions …
[davea@mydevbox mydir]$ ls -al /usr/lib/chromedriver
-rwxr-xr-x 1 davea evotext 5503600 Feb 3 2014 /usr/lib/chromedriver
So I am confused as to why I’m getting this error. Any help is appreciated, - Dave
答案 0 :(得分:3)
我有同样的问题。我已经通过从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
答案 1 :(得分:2)
添加到Niels&#39;回答,对于那些不使用巴别
的人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());
答案 2 :(得分:0)
在我的小型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从第一个位置移动到其他位置,这意味着用相同的名称替换这些位置中已经存在的所有文件。 / p>
最后我所做的只是。关闭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');
答案 3 :(得分:0)
可能会晚一点,但是如果有人遇到这个问题,我可以进行以下工作:
第一个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
答案 4 :(得分:0)
对我来说,最简单的方法是使用本地安装的chromedriver。当我忘记在脚本中使用chromedriver时出现错误。
npm install
require('chromedriver');
(我在selenium-webdriver
中使用它)不确定为什么没有检测到您的全局路径。如果我没有require('chromedriver')
行,则可以将本地chromedriver文件添加到路径中,并且可以正常工作。