Перейти до основного вмісту

Способи використання

WebdriverIO можна використовувати для різних цілей. Він реалізує API для виконання команд WebDriver протоколу та може запускати браузер готовий для автоматизації. Фреймворк розроблений для роботи в будь-якому середовищі та для будь-яких завдань. Він не залежить від сторонніх фреймворків і потребує лише Node.js для роботи.

Імплементації протоколів

Для базової взаємодії з WebDriver та іншими протоколами автоматизації WebdriverIO використовує власні імплементації протоколів, що базуються на NPM пакунку webdriver:

setup/webdriver.js
loading...

Усі команд протоколу повертають необроблену відповідь від драйвера автоматизації. Пакет дуже мінімалістичний і не має розумної логіки, як-от автоматичне очікування, щоб спростити мінімізувати використання протоколу.

Команди протоколу, що зможуть бути використані з екземпляром, залежать від відповіді драйвера на запит початку сеансу. Наприклад, якщо відповідь вказує, на те що було розпочато мобільний сеанс, пакунок дозволяє всі команди протоколу Appium і Mobile JSON Wire цьому екземпляру.

Ви можете використовувати той самий набір команд (крім мобільних) за допомогою Chrome DevTools протоколу із devtools NPM пакунком. Він має той самий інтерфейс, що й пакунок webdriver, але виконує автоматизацію на основі Puppeteer.

Щоб отримати додаткові відомості про інтерфейси цих пакунків, перегляньте розділ Модулі.

Автономний режим

To simplify the interaction with the WebDriver protocol the webdriverio package implements a variety of commands on top of the protocol (e.g. the dragAndDrop command) and core concepts such as smart selectors or auto-waits. The example from above can be simplified like this:

setup/standalone.js
loading...

Using WebdriverIO in standalone mode still gives you access to all protocol commands but provides a super set of additional commands that provide a higher level interaction with the browser. It allows you to integrate this automation tool in your own (test) project to create a new automation library. Popular examples include Spectron or CodeceptJS. You can also write plain Node scripts to scrape the web for content (or anything else that requires a running browser).

If no specific options are set WebdriverIO will always attempt to download at setup the browser driver that matches browserName property in your capabilities. In case of Chrome it might also install Chrome for Testing depending on whether it can find a browser on the machine.

For more information on the webdriverio package interfaces, see Modules API.

The WDIO Testrunner

The main purpose of WebdriverIO, though, is end-to-end testing on a big scale. We therefore implemented a test runner that helps you to build a reliable test suite that is easy to read and maintain.

The test runner takes care of many problems that are common when working with plain automation libraries. For one, it organizes your test runs and splits up test specs so your tests can be executed with maximum concurrency. It also handles session management and provides lots of features to help you to debug problems and find errors in your tests.

Here is the same example from above, written as a test spec and executed by WDIO:

setup/testrunner.js
loading...

The test runner is an abstraction of popular test frameworks like Mocha, Jasmine, or Cucumber. To run your tests using the WDIO test runner, check out the Getting Started section for more information.

For more information on the @wdio/cli testrunner package interface, see Modules API.

Welcome! How can I help?

WebdriverIO AI Copilot