What is appium-chromedriver?
The appium-chromedriver npm package is a Node.js wrapper around the Chromedriver binary, which is used to automate Chrome-based browsers for testing purposes. It is primarily used in conjunction with Appium to facilitate automated testing of web applications on mobile devices.
What are appium-chromedriver's main functionalities?
Install Chromedriver
This feature allows you to install the Chromedriver binary required for automating Chrome-based browsers. The code sample demonstrates how to set up Chromedriver using the appium-chromedriver package.
const Chromedriver = require('appium-chromedriver');
const driver = new Chromedriver();
driver.setupChromedriver().then(() => console.log('Chromedriver installed successfully'));
Start Chromedriver
This feature allows you to start the Chromedriver server. The code sample demonstrates how to start Chromedriver using the appium-chromedriver package.
const Chromedriver = require('appium-chromedriver');
const driver = new Chromedriver();
driver.start().then(() => console.log('Chromedriver started successfully'));
Stop Chromedriver
This feature allows you to stop the Chromedriver server. The code sample demonstrates how to stop Chromedriver using the appium-chromedriver package.
const Chromedriver = require('appium-chromedriver');
const driver = new Chromedriver();
driver.stop().then(() => console.log('Chromedriver stopped successfully'));
Get Chromedriver Status
This feature allows you to get the status of the Chromedriver server. The code sample demonstrates how to retrieve the status using the appium-chromedriver package.
const Chromedriver = require('appium-chromedriver');
const driver = new Chromedriver();
driver.status().then(status => console.log('Chromedriver status:', status));
Other packages similar to appium-chromedriver
selenium-webdriver
The selenium-webdriver package is a popular tool for automating web browsers. It provides a high-level API for controlling browsers and is widely used for web application testing. Unlike appium-chromedriver, which is focused on mobile automation, selenium-webdriver supports a broader range of browsers and platforms.
webdriverio
WebdriverIO is a powerful automation framework for web and mobile applications. It provides a rich set of features for browser automation and integrates well with various testing frameworks. Compared to appium-chromedriver, WebdriverIO offers more extensive support for different browsers and testing environments.
nightwatch
Nightwatch is an end-to-end testing framework for web applications and websites. It uses the W3C WebDriver API to perform browser automation and provides a simple syntax for writing tests. While appium-chromedriver is focused on mobile automation, Nightwatch is designed for web application testing and offers built-in support for various browsers.
appium-chromedriver
Node.js wrapper around Chromedriver
This module is written using Traceur which is essentially ECMAscript6 along with the proposed await
command for es7.
Usage
import Chromedriver from 'appium-chromedriver';
async function runSession() {
let driver = new Chromedriver();
const desiredCaps = {browserName: 'chrome'};
await driver.start(desiredCaps);
let status = await driver.sendCommand('/status', 'GET');
await driver.stop();
}
function runSession2() {
let driver = new Chromedriver();
const desiredCaps = {browserName: 'chrome'};
driver.start(desiredCaps);
driver.on(Chromedriver.EVENT_CHANGED, function (msg) {
if (msg.state === Chromedriver.STATE_ONLINE) {
driver.sendCommand('/status', 'GET').then(function (status) {
driver.stop();
});
}
});
driver.on(Chromedriver.EVENT_ERROR, function (err) {
});
}
States
Here's what the Chromedriver state machine looks like:
Here are the events you can listen for:
Chromedriver.EVENT_ERROR
: gives you an error objectChromedriver.EVENT_CHANGED
: gives you a state change object, with a state
property that can be one of:
Chromedriver.STATE_STOPPED
Chromedriver.STATE_STARTING
Chromedriver.STATE_ONLINE
Chromedriver.STATE_STOPPING
Dev
We use Gulp for building/transpiling.
Watch
npm run watch
Run Tests
npm test