I am trying to use the ChromeDriver driver for Selenium to run some tests using Chrome, but I'm getting a reference error when I use ChromeOptions
.
My Code
I want to force the use of certain options, such as testing it against a particular user profile. Based on the Selenium and ChromeDriver documentation, this is my file 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
The error
I am executing this using the command node test.js
. This throws the following error on the first line:
\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
For what it's worth, if I skip setting options and replace the first four lines of the script with this, it works, but I can't set the options I need to set:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
I'm sure that I'm missing something really basic, but I can't figure this one out. How can I set options for Chrome using Selenium and node.js?
Edited to remove some obviously invalid syntax from the samples in some of the documentation I found.
could you please just try below solution
This works for me (from this gist)
This seems to be a fundamental OOP JavaScript misunderstanding!
Your problem is:
You don't instantiate objects this way. Try:
Here's proof: http://jsfiddle.net/q5Etk/
If you run that, we get "Unexpected Identifier". Uncomment the
var
bit and comment theCat cat
bit and see it work.EDIT After your edit:
You are specifying
chromeOptions()
. It'sChromeOptions()
cappedC
The following works for me:
I've tested the code above with various values and found that it works.
If you want to see what else you can do with the
Options
object, you can opennode_modules/selenium_webdriver/chrome.js
and read the source. This is how I figured out the above method.