[英]Selenium Nodejs CHROMEDRIVER path
尝试使用“npm install selenium-webdriver”我仍然收到以下错误。 知道路径在哪里吗?
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 (<anonymous>)
at new ServiceBuilder (/var/www/nodejs/node_modules/selenium-webdriver/chrome.js:51:11)
at getDefaultService (/var/www/nodejs/node_modules/selenium-webdriver/chrome.js:216:22)
at new Driver (/var/www/nodejs/node_modules/selenium-webdriver/chrome.js:470:32)
at Builder.build (/var/www/nodejs/node_modules/selenium-webdriver/builder.js:302:14)
at Object.handle (/var/www/nodejs/node.js:31:4)
at next_layer (/var/www/nodejs/node_modules/express/lib/router/route.js:103:13)
at Route.dispatch (/var/www/nodejs/node_modules/express/lib/router/route.js:107:5)
at c (/var/www/nodejs/node_modules/express/lib/router/index.js:195:24)
at Function.proto.process_params (/var/www/nodejs/node_modules/express/lib/router/index.js:251:12)
好的,假设您使用的是 Windows,请尝试以下步骤:
从这里下载最新版本的 ChromeDriver ChromeDriver
解压缩 zip 并将内容放在您知道的位置,例如“C:\\Users\\UserName\\AppData\\ChromeDriver”
转到您的控制面板 -> 系统 -> 编辑系统变量。 单击“环境变量”按钮。
在系统变量框中将有一个名为“Path”的变量,选择它并单击编辑。 将您下载的 chromedriver.exe 的包含目录的路径复制并粘贴到变量值的末尾,并以分号结束。
再次单击确定关闭环境变量,再次单击关闭系统属性。
关闭并重新打开终端窗口。
再次运行命令。
我希望这有助于-有一个很好的教程 在这里
即使在系统变量中添加驱动程序路径后,它也不起作用。
但是通过创建和设置自己的默认 Chrome 服务,它起作用了
var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var path = require('chromedriver').path;
var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
你只需要安装npm install selenium-webdriver
。 然后从这里下载 chromedriver。
const path = require('path');
const { ServiceBuilder } = require('selenium-webdriver/chrome');
const { Builder } = require('selenium-webdriver');
const geckoDriverPath = path.join(__dirname, "geckodriver"); // or wherever you've your geckodriver
const serviceBuilder = new ServiceBuilder(geckoDriverPath);
const SeleniumDriver = await new Builder()
.forBrowser('chrome')
.setFirefoxService(serviceBuilder)
.build();
我想用我的npm install
命令下载chromedriver
,所以我从 npm 安装了chromedriver
npm install --save chromedriver
但是后来我遇到了如何设置路径的问题,我最终回答了这个问题。
如果你也使用这种方法,根据npm-chromedriver docs你可以做
require('chromedriver');
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
它确实按我的预期工作,请注意 chromedriver 不是通过将require
结果分配给变量来导入的,而是按原样导入
您可以将浏览器驱动程序放在存储执行代码的同一位置。
希望能帮助到你
就我而言,我的终端在设置 PATH 之前已经打开。 所有解决方案都失败了,直到我最终重新启动了终端。
安装chromedriver
npm install --save-dev chromedriver
const chrome = require('selenium-webdriver/chrome');
const {Builder, By, Key, until,Capabilities} = require('selenium-webdriver');
const geckoDriverPath = require('chromedriver').path;
let service = new chrome.ServiceBuilder(geckoDriverPath ).build();
chrome.setDefaultService(service);
(async function example() {
let driver = await new Builder().withCapabilities(Capabilities.chrome()).build();
try {
await driver.get('https://www.baidu.com/');
await driver.findElement(By.name('wd')).sendKeys('webdriver', Key.RETURN);
await driver.wait(until.titleIs('webdriver_百度搜索'), 1000);
console.log('ok')
} finally {
await driver.quit();
}
})();
在 MacOSX 下,这个问题很可能是由 ~ 错误扩展到 hme 目录引起的。 设置绝对路径而不是依赖 ~ 并且它有效; 至少在我的电脑上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.