Перейти к основному содержимому

Типы настройки

WebdriverIO может использоваться для различных целей. Он реализует API протокола WebDriver и может запускать браузер в автоматизированном режиме. Фреймворк разработан для работы в любой среде и для любых задач. Он не зависит от сторонних фреймворков и требует только Node.js для запуска.

Привязки протокола

Для базовых взаимодействий с WebDriver и другими протоколами автоматизации WebdriverIO использует собственные привязки протокола на основе NPM-пакета webdriver:

setup/webdriver.js
loading...

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

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

Вы можете запускать тот же набор команд (кроме мобильных) с использованием протокола Chrome DevTools, импортируя NPM-пакет devtools. Он имеет тот же интерфейс, что и пакет webdriver, но выполняет автоматизацию на основе Puppeteer.

Дополнительную информацию об интерфейсах этих пакетов смотрите в API модулей.

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

Чтобы упростить взаимодействие с протоколом WebDriver, пакет webdriverio реализует различные команды поверх протокола (например, команду dragAndDrop) и основные концепции, такие как умные селекторы или автоматическое ожидание. Пример выше можно упростить так:

setup/standalone.js
loading...

Использование WebdriverIO в автономном режиме по-прежнему дает вам доступ ко всем командам протокола, но предоставляет набор дополнительных команд, которые обеспечивают взаимодействие с браузером на более высоком уровне. Это позволяет вам интегрировать этот инструмент автоматизации в свой (тестовый) проект для создания новой библиотеки автоматизации. Популярные примеры включают Oxygen или CodeceptJS. Вы также можете писать простые скрипты Node для сбора контента из веба (или для любых других задач, требующих запуска браузера).

Если не указаны конкретные опции, WebdriverIO всегда будет пытаться загрузить и настроить драйвер браузера, соответствующий свойству browserName в ваших capabilities. В случае Chrome и Firefox он также может установить их, если не найдет соответствующий браузер на машине.

Дополнительную информацию об интерфейсах пакета webdriverio смотрите в API модулей.

Тестовый раннер WDIO

Однако основная цель WebdriverIO - это комплексное тестирование в большом масштабе. Поэтому мы реализовали тестовый раннер, который помогает создать надежный набор тестов, который легко читать и поддерживать.

Тестовый раннер решает многие проблемы, которые часто возникают при работе с обычными библиотеками автоматизации. Во-первых, он организует ваши тестовые запуски и разделяет тестовые спецификации, чтобы ваши тесты могли выполняться с максимальной параллельностью. Он также управляет сессиями и предоставляет множество функций, которые помогают отлаживать проблемы и находить ошибки в ваших тестах.

Вот тот же пример, что и выше, написанный как тестовая спецификация и выполненный WDIO:

setup/testrunner.js
loading...

Тестовый раннер - это абстракция популярных тестовых фреймворков, таких как Mocha, Jasmine или Cucumber. Чтобы запустить ваши тесты с использованием тестового раннера WDIO, ознакомьтесь с разделом Начало работы для получения дополнительной информации.

Дополнительную информацию об интерфейсе пакета тестового раннера @wdio/cli смотрите в API модулей.

Welcome! How can I help?

WebdriverIO AI Copilot