appium-chromium-driver
This is an Appium driver for Chromium-based browsers (like
Chrome).
Why does this project exist?
It is already possible to automate Chromium browsers with
Chromedriver. In fact, this Appium driver uses Chromedriver
under the hood! It is not any kind of fundamentally new or different technology. The advantages of
using this project are:
- Automate Chromium browsers using the Appium server you already have, simply by including this
Appium driver.
- No need to download specific versions of Chromedriver manually. This driver takes care of
downloading a version of Chromedriver appropriate for the version of the browser under test.
- Take advantage of the ecosystem of Appium plugins and features (e.g., image
analysis) not available via
Chromedriver on its own.
Installation
It's assumed that you have an Appium server (version 2.x+) installed, and that you have a browser
compatible with Chromedriver ready to automate on your system. The recommended installation method
is to use the Appium extension
CLI to install the driver:
appium driver install chromium
Note
MSEdge browser support started since v1.1.0
Usage
To start an automation session targeting this driver, construct a set of options/capabilities in
any WebDriver client that (minimally) includes the following:
Capability | Value |
---|
platformName | One of macOS , mac , Linux , or Windows (depending on your system) |
browserName | browserName to the running WebDriver process. For example, chrome or chromium is for chromedriver, MicrosoftEdge or msedge is for msedge driver. |
appium:automationName | Chromium |
Use these capabilities to start a new session. (Refer to the documentation for your WebDriver
client for the particular syntax used to start a session in that client).
At this point, all WebDriver commands are proxied directly to WebDriver. This driver does not
implement any additional commands. Refer to the Chromedriver documentation or the WebDriver
specification for a list of the available automation commands.
Note
Supported WebDriver kinds are chromedriver
for Chrome and Chromium browsers and msedgedriver
for MSEdge.
Capabilities
In addition to all of the Chromedriver
capabilities (nested underneath
goog:chromeOptions
for Chrome and Chromium or ms:edgeOptions
for MSEdge),
this driver supports the following:
Capability | Description | Default Value |
---|
appium:chromedriverPort | The port to start WebDriver process on | 9515 |
appium:executable | The absolute path to a WebDriver binary executable. If set, the driver will use that path instead of its own WebDriver | |
appium:executableDir | A directory within which is found any number of WebDriver binaries. If set, the driver will search this directory for WebDrivers of the appropriate version to use for your browser | |
appium:verbose | Set to true to add the --verbose flag when starting WebDriver | false |
appium:logPath | The path to use with the --log-path parameter directing WebDriver to write its log to that path, if set | |
appium:disableBuildCheck | Set to true to add the --disable-build-check flag when starting WebDriver | false |
appium:autodownloadEnabled | Set to false to disable automatic downloading of Chromedrivers. | true |
appium:useSystemExecutable | Set to true to use the version of WebDriver bundled with this driver, rather than attempting to download a new one based on the version of the browser under test | false |
Note
msedgedriver
support is limited. appium:autodownloadEnabled
does not work for the driver, thus appium:executable
is necessary to automate MSEdge browser properly.
Scripts
install-chromedriver
This script is used to install the given or latest stable version of chromedriver (113+) from
Chrome for testing
with appium driver run chromium install-chromedriver
.
Please read Version selection document
to find a proper chromedriver manually that is good for your current browser.
Below environment arguments are available:
CHROMEDRIVER_EXECUTABLE_DIR
- Let the command to download chromedrivers in the given directory. Defaults to
node_modules/appium-chromedriver/chromedriver
in appium-chromium-driver
package. - i.e.
- macOS/Linux:
CHROMEDRIVER_EXECUTABLE_DIR=/path/to/dir appium driver run chromium install-chromedriver
- Windows:
$env:CHROMEDRIVER_EXECUTABLE_DIR='C:\path\to\folder'; appium driver run chromium install-chromedriver; Remove-Item Env:\CHROMEDRIVER_EXECUTABLE_DIR
CHROMEDRIVER_VERSION
- Let the command download a specific version.
- i.e.
- macOS/Linux:
CHROMEDRIVER_VERSION=131.0.6778.3 appium driver run chromium install-chromedriver
- Windows:
$env:CHROMEDRIVER_VERSION='131.0.6778.3'; appium driver run chromium install-chromedriver; Remove-Item Env:\CHROMEDRIVER_VERSION
CHROMELABS_URL
- Let the command get the list of available chromedrivers from the given mirror instead of the default one.
Contributing
Contributions to this project are welcome! Feel free to submit a PR on GitHub.
To get set up with a working developer environment, clone the project then run:
npm install
To build the code once:
npm run build
To rebuild the code anytime a file is saved:
npm run dev
Before committing any code, please make sure to run:
npm run lint
npm run test:ci
And make sure everything passes!
More developer scripts can be found in package.json
.