Run Selenium IDE projects in cli
npm install selenium-side-runnerRuns exported Selenium IDE tests in command line
Node.js is required to use the Selenium side-runner.
The project guarantees support for the active LTS major version (e.g. 10 & 12).
__NOTE: The minimum supported version of Node is now 10.15.0 LTS__
``yarn global add selenium-side-runner` `
or npm install -g selenium-side-runner`
`selenium-side-runner project.side project2.side *.side`
`selenium-side-runner -c "browserName=chrome platform=MAC"`
#### Passing nested capabilities
`selenium-side-runner -c "goog:chromeOptions.binary='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'"`
#### Chrome specific list capabilities (headless)
`selenium-side-runner -c "goog:chromeOptions.args=[disable-infobars, headless]"`
`selenium-side-runner --server http://localhost:4444/wd/hub`
Will only run tests matching the filter
`selenium-side-runner --filter mytest`
Change the base URL that the tests were recorded with, note that it will not affect tests that used absolute URLs.
`selenium-side-runner --base-url https://www.seleniumhq.org`
All of the configuration can be written in the .side.yml file, the runner will load it from the current working directory automatically.
#### Example usage
`yaml`
capabilities:
browserName: "firefox"
baseUrl: "https://www.seleniumhq.org"
server: "http://localhost:4444/wd/hub"
#### Running on multiple workers
Running tests faster through the use of multiple workers
`selenium-side-runner -w 4`
The runner will automatically set the number of workers to the amount of cores available, for most cases this is the best result.
__Note:__ unless you specified that a suite is parallel, it will still run the contained tests sequentially, though the runner will run suites in parallel by default.
To mark a suite's tests as parallel, set that in the suite's settings in the IDE.
#### Using a proxy server
selenium-side-runner can pass proxy capabilities to the browser using the following schemes.
##### direct proxy
Configures WebDriver to bypass all browser proxies.
`selenium-side-runner --proxy-type=direct`
`yaml`
proxyType: direct
##### manual proxy
Manually configures the browser proxy.
`selenium-side-runner --proxy-type=manual --proxy-options="http=localhost:434 bypass=[http://localhost:434, http://localhost:8080]"`
`yaml`
proxyType: manual
proxyOptions:
http: http://localhost:434
https: http://localhost:434
ftp: http://localhost:434
bypass:
- http://localhost:8080
- http://host:434
- http://somethingelse:32
##### pac proxy
Configures WebDriver to configure the browser proxy using the PAC file at the given URL.
`selenium-side-runner --proxy-type=pac --proxy-options="http://localhost/pac"`
`yaml`
proxyType: pac
proxyOptions: http://localhost/pac
##### socks proxy
Creates a proxy configuration for a socks proxy.
`selenium-side-runner --proxy-type=socks --proxy-options="socksProxy=localhost:434 socksVersion=5"`
`yaml`
proxyType: socks
proxyOptions:
socksProxy: localhost:434
socksVersion: 5
##### system proxy
Configures WebDriver to use the current system's proxy.
`selenium-side-runner --proxy-type=system`
`yaml`
proxyType: system
#### I'm getting an error similar to Unknown locator ${vars.something}
When running your projects make sure that the command is aware of the locator strategy __before__ variables are evaluated.
For example click | id=${myButton} vs click | ${idOfMyButton}`.
Always use the first one, since the strategy is hardcoded in the command, the second would yield an error.