Skip to content

Instantly share code, notes, and snippets.

Last active May 10, 2024 15:17
Show Gist options
  • Save anandsunderraman/e351485319a8a0e7df7e to your computer and use it in GitHub Desktop.
Save anandsunderraman/e351485319a8a0e7df7e to your computer and use it in GitHub Desktop.
Selenium Web Driver Set Chrome Options
//import the selenium web driver
var webdriver = require('selenium-webdriver');
var chromeCapabilities =;
//setting chrome options to start the browser fully maximized
var chromeOptions = {
'args': ['--test-type', '--start-maximized']
chromeCapabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
Copy link

codingyourlife commented Aug 13, 2019

Took me. while to figure this ChromeOptions in javascript nodejs out.


  • You cannot say import { Options } from "selenium-webdriver/chrome"; - no idea why to be honest
  • Testing it with start-maximized is a bad idea. Didn't work for me. setMobileEmulation or my blink-settings argument work
  • It is really confusing because there are Capabilities, Options, DesiredCapabilities ChromeOptions etc. and you can load Options from capabilities and such strange things

Here my working example where I disable all images through command line argument (pretty obvious if it works):

import webdriver from "selenium-webdriver";
import chrome from "selenium-webdriver/chrome";

export const getNewChromeWrapperDriver = () => {
  // var chromeCapabilities =;

  const chromeOptions = new chrome.Options();

  var driver = new webdriver.Builder()
    // .withCapabilities(chromeCapabilities)

  const seleniumWrapper = {
    webdriver: webdriver,
    driver: driver,
    quit: async () => {
      await driver.quit();

  return seleniumWrapper;

As you can see chromeCapabilities are not needed in contrast to some solutions above.


import { getNewChromeWrapperDriver } from "./helper/seleniumWrapper.mjs";

const { driver, webdriver } = getNewChromeWrapperDriver()

I kept finding this gist so I thought I add my snippet here...

Copy link

jbdoster commented Sep 4, 2019

Thank you!!!

Copy link

Addition to my comment. I've now upgraded to node 12 since it is now LTS and ran into this issue:
ERR_MODULE_NOT_FOUND selenium-webdriver/chrome

Since import of selenium-webdriver/chrome does no longer work
import chrome from "selenium-webdriver/chrome"; //broken

Here is my workaround:

import require from "requirejs";
const chrome = require("selenium-webdriver/chrome"); //works

This again took me quite a while to find out so I hope this helps!

Copy link

Is it possible to disable w3c using this config?

Copy link

dose anyone knows how to do the same with firefox. (open firefox with a specific profile path)

Copy link

qquach commented Oct 14, 2020

some good source:

The new syntax for nodejs (NOTE: the key value)
chromeCapabilities.set("goog:chromeOptions", options);

Copy link

ramrami commented Oct 17, 2020

Thank you

Copy link

Thanks @qquach

Copy link

Copy link

You rock!

Copy link

For newer versions of Node with ES modules enabled (14+)

import chrome from 'selenium-webdriver/chrome.js';

let opts = new chrome.Options();
opts.excludeSwitches('enable-automation'); // disable 'Chrome is being controlled by automation' banner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment