Модулі
WebdriverIO публікує різні модулі в NPM та інших реєстрах, які ви можете використовувати для побудови власної системи автоматизації. Дізнайтеся більше про типи налаштувань WebdriverIO тут.
webdriver та devtools
Пакети протоколів (webdriver та devtools) надають клас з наступними статичними функціями, які дозволяють ініціювати сесії:
newSession(options, modifier, userPrototype, customCommandWrapper)
Запускає нову сесію з конкретними можливостями. На основі відповіді сесії надаються команди з різних протоколів.
Параметри
options: Опції WebDrivermodifier: функція, що дозволяє модифікувати екземпляр клієнта до того, як він буде повернутийuserPrototype: об'єкт властивостей, що дозволяє розширити прототип екземпляраcustomCommandWrapper: функція, що дозволяє обгортати функціональність навколо викликів функцій
Повертає
- Об'єкт Browser
Приклад
const client = await WebDriver.newSession({
capabilities: { browserName: 'chrome' }
})
attachToSession(attachInstance, modifier, userPrototype, customCommandWrapper)
Підключається до працюючої сесії WebDriver або DevTools.
Параметри
attachInstance: екземпляр, до якого підключається сесія, або принаймні об'єкт з властивістюsessionId(наприклад,{ sessionId: 'xxx' })modifier: функція, що дозволяє модифікувати екземпляр клієнта до того, як він буде повернутийuserPrototype: об'єкт властивостей, що дозволяє розширити прототип екземпляраcustomCommandWrapper: функція, що дозволяє обгортати функціональність навколо викликів функцій
Повертає
- Об'єкт Browser
Приклад
const client = await WebDriver.newSession({...})
const clonedClient = await WebDriver.attachToSession(client)
reloadSession(instance)
Перезавантажує сесію за наданим екземпляром.
Параметри
instance: екземпляр пакету для перезавантаження
Приклад
const client = await WebDriver.newSession({...})
await WebDriver.reloadSession(client)
webdriverio
Подібно до пакетів протоколів (webdriver та devtools), ви також можете використовувати API пакету WebdriverIO для керування сесіями. API можна імпортувати за допомогою import { remote, attach, multiremote } from 'webdriverio' і вони містять наступну функціональність:
remote(options, modifier)
Запускає сесію WebdriverIO. Е кземпляр містить усі команди, як і пакет протоколу, але з додатковими функціями вищого порядку, див. API документацію.
Параметри
options: Опції WebdriverIOmodifier: функція, що дозволяє модифікувати екземпляр клієнта до того, як він буде повернутий
Повертає
- Об'єкт Browser
Приклад
import { remote } from 'webdriverio'
const browser = await remote({
capabilities: { browserName: 'chrome' }
})
attach(attachOptions)
Підключається до працюючої сесії WebdriverIO.
Параметри
attachOptions: екземпляр, до якого підключається сесія, або принаймні об'єкт з властивістюsessionId(наприклад,{ sessionId: 'xxx' })
Повертає
- Об'єкт Browser
Приклад
import { remote, attach } from 'webdriverio'
const browser = await remote({...})
const newBrowser = await attach(browser)
multiremote(multiremoteOptions)
Ініціює екземпляр multiremote, який дозволяє керувати кількома сесіями в одному екземплярі. Перегляньте наші приклади multiremote для конкретних випадків використання.
Параметри
multiremoteOptions: об'єкт з ключами, що представляють назву браузера, та їхніми Опціями WebdriverIO.
Повертає
- Об'єкт Browser
Приклад
import { multiremote } from 'webdriverio'
const matrix = await multiremote({
myChromeBrowser: {
capabilities: { browserName: 'chrome' }
},
myFirefoxBrowser: {
capabilities: { browserName: 'firefox' }
}
})
await matrix.url('http://json.org')
await matrix.getInstance('browserA').url('https://google.com')
console.log(await matrix.getTitle())
// returns ['Google', 'JSON']
@wdio/cli
Замість виклику команди wdio, ви також можете включити test runner як модуль і запустити його в довільному середовищі. Для цього вам потрібно імпортувати пакет @wdio/cli як модуль, таким чином:
- EcmaScript Modules
- CommonJS
import Launcher from '@wdio/cli'
const Launcher = require('@wdio/cli').default
Після цього створіть екземпляр launcher і запустіть тест.
Launcher(configPath, opts)
Конструктор класу Launcher очікує URL до файлу конфігурації та об'єкт opts з налаштуваннями, які замінять налаштування в конфігурації.
Параметри
configPath: шлях доwdio.conf.jsдля запускуopts: аргументи (<RunCommandArguments>) для заміни значень з файлу конфігурації