Passing require(#39;chromedriver).path directly to selenium-webdriver(将 require(chromedriver).path 直接传递给 selenium-webdriver)
问题描述
tl;dr: 有谁知道如何在不设置 PATH 环境变量的情况下在代码中将 chromedriver 的路径传递给 selenium-webdriver?
我正在尝试将 selenium-webdriver 与 chrome 一起使用,但不希望物理安装 chromedriver 并操纵路径.我有以下代码:
I'm attempting to use selenium-webdriver with chrome, but would prefer to not physically install chromedriver and manipulate the path. I have the following code:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
没有在路径中设置 chromedriver,这会引发错误:
Without chromedriver set in the path, this throws the 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.
我不想设置我的路径,所以我从 npm 安装了 chromedriver 并添加到我的 package.json:
I'd prefer not have to setup my path, so I've installed chromedriver from npm and added to my package.json:
"scripts": {
"preinstall-chromedriver": "npm install",
"install-chromedriver": "node node_modules/chromedriver/install.js",
"pretest_e2e": "npm run install-chromedriver",
"test_e2e": "node release/test/rune2e.js"
},
现在我已经安装了 chromedriver,并且可以使用 require('chromedriver').path
获取路径,但是我无法将它传递给 selenium-webdriver.有人知道吗?
Now I have chromedriver installed and can get the path with require('chromedriver').path
, but I have no way of passing this to the selenium-webdriver. Anyone know?
推荐答案
你需要创建 &设置您自己的默认 chrome 服务.
You need to create & set your own default chrome service.
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();
这篇关于将 require('chromedriver).path 直接传递给 selenium-webdriver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将 require('chromedriver).path 直接传递给 selenium-webdriver


基础教程推荐
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01