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

ChromeOptions使用Selenium ChromeDriver for node.js导致参考错误

赏育
2023-03-14
问题内容

我正在尝试使用Selenium的ChromeDriver驱动程序来使用Chrome运行某些测试,但是使用时出现参考错误ChromeOptions

我想强制使用某些选项,例如针对特定的用户配置文件对其进行测试。根据Selenium和ChromeDriver文档,这是我的文件test.js

opt = new chromeOptions(); // ERROR OCCURS HERE!
opt.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
opt.addArguments("--user-data-dir=C:\\Users\\MyUserAccount\\AppData\\Local\\Google\\Chrome\\User Data");
driver = new ChromeDriver(opt);

// rest of my script goes here

错误

我正在使用命令执行此操作node test.js。这会在第一行上引发以下错误:

\path\to\test.js:1

ction (exports, require, module, __filename, __dirname) { opt = new chromeOpti
                                                                    ^
ReferenceError: chromeOptions is not defined
    at Object.<anonymous> (\path\to\test.js:1:73)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

值得一提的是,如果我跳过设置选项,并以此替换脚本的前四行,则可以使用,但是我无法设置需要设置的选项:

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

我确定我确实缺少一些基本知识,但是我无法弄清楚这一点。如何使用Selenium和node.js为Chrome设置选项?

编辑后从我发现的一些文档的样本中删除了一些明显无效的语法。


问题答案:

以下对我有用:

var webdriver = require("selenium-webdriver");
var chrome = require("selenium-webdriver/chrome");

// Make sure the PATH is set to find ChromeDriver. I'm on a Unix
// system. You'll need to adapt to whatever is needed for
// Windows. Actually, since you say that you can get a browser to show
// up if you don't try to specify options, your ChromeDriver is
// probably already on your PATH, so you can probably skip this.
process.env["PATH"] += ":/home/user/src/selenium/";

var options = new chrome.Options();

// Commented out because they are obviously not what you want.
// Uncomment and adapt as needed:
//
// options.setChromeBinaryPath("/tmp/foo");
// options.addArguments(["--blah"]);

var driver = new webdriver.Builder().
   withCapabilities(options.toCapabilities()).build();

driver.get("http://www.google.com")

我已经使用各种值测试了上面的代码,并发现它可以工作。

如果要查看可以对该Options对象执行的其他操作,可以打开node_modules/selenium_webdriver/chrome.js并阅读源代码。这就是我找出上述方法的方式。



 类似资料:
  • 问题内容: 使用Jackson将hibernate对象转换为JSON时,我遇到问题,因为某些对象在其定义中具有自引用。问题是我无法控制这些实体的代码,因此无法在其中放置注释。 实际上,我只想将递归的深度限制为例如5个级别。我需要与包含自我引用的任何实体对象一起使用的通用代码。可能吗?我不介意使用另一个JSON库。 下面的简单代码 给我例外: 在此先感谢您的任何建议! 问题答案: 使用Jackson

  • 问题内容: 使用Jackson将休眠对象转换为JSON时,我遇到了问题,因为某些对象在其定义中具有自引用。问题是我无法控制这些实体的代码,因此无法在其中放置注释。 实际上,我只想将递归的深度限制为例如5个级别。我需要与包含自我引用的任何实体对象一起工作的通用代码。可能吗?我不介意使用另一个JSON库。 下面的简单代码 给我例外: 在此先感谢您的任何建议! 问题答案: 使用Jackson 2.0-

  • 对于大多数通用库,Hana中的算法通过它们所属的概念(Foldable,Iterable,Searchable,Sequence等等)来记录。 不同的容器然后被记录在他们自己的页面上,并且他们建模的概念被记录在那里。 由某个容器建模的概念定义了可以与这样的容器一起使用的算法。 更具体地,参考的结构(在左边的菜单中可用)如下: 核心 核心模块的文档,其中包含创建概念,数据类型和相关实用程序所需的一切

  • 基本上,我在Spring Boot中向控制器发送两个参数,一个是字符串,另一个是文件。在操作中,当我首先接收文件,然后接收字符串时,如下所示 一切都很好,我能够正确地访问字符串和文件。 但是当我改变参数的顺序时,就像这样 我研究了很多,但不能理解这种行为。

  • 我正在尝试使用NPM的gulp-git模块推送到我的远程存储库。add&commit部分运行良好,但在尝试执行远程推送时遇到流错误。 TypeError:undefined不是write(C:\src\git\ig\node_module\gulp-git\node_module\through2\node_module\readable-stream\lib_stream_readable.js

  • 我试图以以下方式使用Jersey的@BeanParam注释: 这是我的豆子: 这是需要使用它的资源方法: 现在我想使用一个单元测试来测试它,该单元测试使用以下url向测试服务器发送超文本传输协议请求: GET超文本传输协议://path_to_resource?参数1 我的问题是,这导致了415响应,泽西打印了这条消息: 找不到Java类BeanParamModel、Java类型类BeanPara