Here you can find an up-to-date example of the configuration object: lib/default-config.js
const selenium = require('selenium-standalone');
async function myFn() {
//result is obj with paths to binary and some info like urls to installed files { fsPaths, urls, opts }
const details = await selenium.install({
// check for more recent versions of selenium here:
// https://selenium-release.storage.googleapis.com/index.html
version: process.env.SELENIUM_VERSION || '4.10.0',
baseURL: 'https://selenium-release.storage.googleapis.com',
drivers: {
chrome: {
// check for more recent versions of chrome driver here:
// https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing
version: 'latest',
arch: process.arch,
baseURL: 'https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing'
channel: 'stable', //option
}
}
});
const seleniumChildProcess = await selenium.start({
drivers: {
chrome: {
version: 'latest',
},
}
});
//or
//staring drivers 'chrome' | 'firefox' | 'chromiumedge' without selenium-server
const chromeDriverChildProcess = await selenium.start({
onlyDriver: 'chrome'
drivers: {
chrome: {
version: 'latest',
onlyDriverArgs: [],//option
},
}
});
// run tests
// finally kill selenium process!
seleniumChildProcess.kill();
}
opts.version
selenium version to install.
opts.drivers
map of drivers to download and install along with selenium standalone server.
The current defaults can be found in lib/default-config.js.
opts.arch
is either ia32
or x64
, it's here because you might want to switch to a particular
arch sometimes.
opts.baseURL
is used to find the server having the selenium or drivers files.
opts.fullURL
as an alternative to baseURL it's possible specify full url, ex https://selenium-release.storage.googleapis.com/4.0-alpha-7/selenium-server-4.0.0-alpha-7.jar
.
opts.ignoreExtraDrivers
only downloads and installs drivers explicitly specified. Broken #421
opts.basePath
sets the base directory used to store the selenium standalone .jar
and drivers. Defaults to node_modules/selenium-standalone/.selenium
opts.progressCb(totalLength, progressLength, chunkLength)
will be called if provided with raw bytes length numbers about the current download process. It is used by the command line to show a progress bar.
opts.logger
will be called if provided with some debugging information about the installation process.
opts.requestOpts
can be any valid got
options object. You can use this for example to set a timeout.
opts.onlyDriver
can be any valid 'chrome' | 'firefox' | 'chromiumedge' it allow to install any driver without selenium server, driver also can be parametrized with onlyDriverArgs, it's []
returns Promise<void>
opts.version
selenium version to install.
opts.drivers
map of drivers to run along with selenium standalone server, same
as selenium.install
.
opts.ignoreExtraDrivers
only loads and starts drivers explicitly specified.
opts.basePath
sets the base directory used to load the selenium standalone .jar
and drivers, same as selenium.install
.
By default all drivers are loaded, you only control and change the versions or archs.
opts.spawnOptions
spawn options for the selenium server. Defaults to undefined
opts.javaArgs
array of arguments for the JVM, included between java
and -jar
in the command line invocation. Use this option to set properties like -Xmx=512M
or -Djava.util.logging.config.file=logging.properties
, for instance. Defaults to []
.
opts.seleniumArgs
array of arguments for the selenium server, passed directly to child_process.spawn. Defaults to []
.
opts.javaPath
set the javaPath manually, otherwise we use [which](https://github.com/isaacs/node-which).sync('java')
.
opts.requestOpts
can be any valid got
options object. You can use this for example to set a timeout.
opts.processKiller
set to falsy value, for preventing killing selenium server port.
opts.onlyDriver
can be any valid 'chrome' | 'firefox' | 'chromiumedge' it allow to start any driver directly without selenium server
returns Promise<ChildProcess>
If you're getting this error, it means that you didn't shut down the server successfully the last time you started it, so it's still running in the background. You can kill it by running:
pkill -f selenium-standalone
since 9.1.0 it's been checked and killed automatically
You can set any version by process.env.SELENIUM_VERSION=3.141.59
before starting selenium-standalone. Default values are here: lib/default-config.js
Should be specified process.env.HTTP_PROXY=http://proxy-url:port
and process.env.HTTPS_PROXY=http://proxy-url:port
or the same system envirement variables HTTP_PROXY=http://proxy-url:port
, HTTPS_PROXY=http://proxy-url:port