Next-gen browser and mobile automation test framework for Node.js
This package provides an easy to manage API and a lot of syntactical sugar on top of the WebDriver specification. You can use WebdriverIO as a standalone package or via a testrunner using @wdio/cli
. WebdriverIO allows to run tests locally using the WebDriver or Chrome DevTools protocol as well as remote user agents using cloud providers like Sauce Labs.
You can install WebdriverIO via NPM:
$ npm install webdriverio
WebdriverIO by default uses Puppeteer to automate a browser like Chrome, Firefox or Chromium Edge. So if you have Chrome installed, the following script should start a browser for you and get the title of the page:
import { remote } from 'webdriverio'
let browser
;(async () => {
browser = await remote({
capabilities: { browserName: 'chrome' }
})
await browser.navigateTo('https://www.google.com/ncr')
const searchInput = await browser.$('#lst-ib')
await searchInput.setValue('WebdriverIO')
const searchBtn = await browser.$('input[value="Google Search"]')
await searchBtn.click()
console.log(await browser.getTitle()) // outputs "WebdriverIO - Google Search"
await browser.deleteSession()
})().catch((err) => {
console.error(err)
return browser.deleteSession()
})
See the raw protocol example using the webdriver
package to get a glance on the differences.
For more information on options, multiremote usage or integration into cloud services please check out the docs. If you want to use WebdriverIO for testing purposes, it is recommended to use the WebdriverIO Testrunner.