@teamteanpm2024/eius-quas-inventore v1.0.5
@teamteanpm2024/eius-quas-inventore
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 chromiumNote 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, orWindows(depending on your system) | 
| browserName | browserNameto the running WebDriver process. For example,chromeorchromiumis for chromedriver,MicrosoftEdgeormsedgeis 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
chromedriverfor Chrome and Chromium browsers andmsedgedriverfor 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 trueto add the--verboseflag when starting WebDriver | false | 
| appium:logPath | The path to use with the --log-pathparameter directing WebDriver to write its log to that path, if set | |
| appium:disableBuildCheck | Set to trueto add the--disable-build-checkflag when starting WebDriver | false | 
| appium:autodownloadEnabled | Set to falseto disable automatic downloading of Chromedrivers. | true | 
| appium:useSystemExecutable | Set to trueto 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
msedgedriversupport is limited.appium:autodownloadEnableddoes not work for the driver, thusappium:executableis necessary to automate MSEdge browser properly.
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 installTo build the code once:
npm run buildTo rebuild the code anytime a file is saved:
npm run devBefore committing any code, please make sure to run:
npm run lint
npm run test:ciAnd make sure everything passes!
More developer scripts can be found in package.json.