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

Типи налаштування

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 у ваших можливостях. У випадку 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