Мультиремоут
WebdriverIO дозволяє запускати кілька автоматизованих сесій в одному тесті. Це зручно, коли ви тестуєте функції, що вимагають кількох користувачів (наприклад, чат або WebRTC додатки).
Замість створення кількох віддалених екземплярів, де потрібно виконувати загальні команди, такі як newSession або url на кожному екземплярі, ви можете просто створити екземпляр multiremote і керувати всіма браузерами одночасно.
Для цього просто використовуйте функцію multiremote() і передайте об'єкт з іменами як ключами та capabilities як значеннями. Надаючи кожній можливості ім'я, ви можете легко вибирати та отримувати доступ до цього окремого екземпляра при виконанні команд.
Multiremote не призначений для паралельного виконання всіх ваших тестів. Він призначений для допомоги в координації кількох браузерів та/або мобільних пристроїв для спеціальних інтеграційних тестів (наприклад, чат-додатків).
Всі екземпляри multiremote повертають масив результатів. Перший результат представляє можливість, визначену першою в об'єкті можливостей, другий результат - другу можливість і так далі.
Використання в автономному режимі
Ось приклад того, як створити екземпляр multiremote в автономному режимі:
import { multiremote } from 'webdriverio'
(async () => {
const browser = await multiremote({
myChromeBrowser: {
capabilities: {
browserName: 'chrome'
}
},
myFirefoxBrowser: {
capabilities: {
browserName: 'firefox'
}
}
})
// відкрити URL з обома браузерами одночасно
await browser.url('http://json.org')
// виконати команди одночасно
const title = await browser.getTitle()
expect(title).toEqual(['JSON', 'JSON'])
// клікнути на елемент одночасно
const elem = await browser.$('#someElem')
await elem.click()
// клікнути лише одним браузером (Firefox)
await elem.getInstance('myFirefoxBrowser').click()
})()