当前位置: 首页 > 面试题库 >

直接将require('chromedriver).path传递给selenium-webdriver

张淳
2023-03-14
问题内容

tl; dr: 有人知道如何在不设置PATH环境变量的情况下,将chromedriver的路径传递给代码中的selenium-
webdriver吗?

我正在尝试将selenium-webdriver与chrome一起使用,但宁愿不实际安装chromedriver并操纵路径。我有以下代码:

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();

在路径中未设置chromedriver的情况下,将引发错误:

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中:

"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。有人知道吗


问题答案:

您需要创建并设置自己的默认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();


 类似资料:
  • 问题内容: tl; dr: 有人知道如何在不设置PATH环境变量的情况下,以代码形式将chromedriver的路径传递给selenium- webdriver吗? 我正在尝试将selenium-webdriver与chrome一起使用,但宁愿不实际安装chromedriver并操纵路径。我有以下代码: 在路径中未设置chromedriver的情况下,将引发错误: 我不想设置路径,所以我从npm安

  • 问题内容: 我正在学习Python,并尝试在下拉菜单上将该页面抓取为特定值。之后,我需要单击结果表上的每个项目以检索特定信息。我可以选择该项目并在网络驱动程序上检索信息。但是我不知道如何将响应URL传递给crawlspider。 这就是我被困住的地方。我能够使用上面的代码进行查询。但是,如何将 resp_for_scrapy 传递给 crawlspider ?我把 resp_for_scrapy

  • 我试图从ActiveMQ队列中提取消息并将其传递给Websphere MQ队列。 我正在使用WSO2,因为最终我们会希望使用它给我们的所有功能。 问题似乎在于WSO2试图将ActiveMQ消息Id作为相关Id直接传递给Websphere MQ,这是错误的格式。 WSO2代理服务配置 Axis2.xml传输接收器 xml传输发送程序 因此,从活动MQ到Websphere MQ相关Id的映射是有问题的

  • 问题内容: 我需要Selenium才能完成javascript工作。 首先,我使用Scrapy登录,然后需要使用Selenium 打开。 问题在于Selenium没有cookie,因此它打开了登录页面。 有谁知道我该如何从曲奇到selenium传递曲奇? 问题答案: 由于您到目前为止还没有提供您编写的任何代码,因此我仅介绍您。 为了从Scrapy获取cookie,请查看和方法 为了设置硒驱动程序的

  • 问题内容: 我正在尝试禁用Chrome控制台的输出。如果我通过–start-maximized选项,则可以正常工作。我可能输入了错误的命令? 我也试过 输出量 已启动的ChromeDriver端口= 26703版本= 23.0.1240.0 log = / Brett / workspace / TestNG / chromedriver.log [1214/161331:ERROR:ipc_sy

  • 问题内容: 我试图将SharedPreferences首选项作为AsyncTask中doInBackground函数的参数传递。我已经给它传递了一个字符串(URL),所以我也需要将首选项也作为字符串传递。我可以简单地使用prefs.toString()将其转换为字符串吗? 这是我设置偏好的地方: 问题答案: 你不能,你不应该。您可以轻松地读取内部首选项,而无需将任何内容传递给方法,只需使用即可: