Hoppa till huvudinnehåll

Moduler

WebdriverIO publicerar olika moduler till NPM och andra register som du kan använda för att bygga ditt eget automatiseringsramverk. Se mer dokumentation om WebdriverIO:s installationstyper här.

webdriver och devtools

Protokollpaketen (webdriver och devtools) exponerar en klass med följande statiska funktioner som låter dig initiera sessioner:

newSession(options, modifier, userPrototype, customCommandWrapper)

Startar en ny session med specifika funktioner. Baserat på sessionssvaret kommer kommandon från olika protokoll att tillhandahållas.

Parametrar
  • options: WebDriver Options
  • modifier: funktion som tillåter modifiering av klientinstansen innan den returneras
  • userPrototype: egenskapsobjekt som låter dig utöka instansprototypen
  • customCommandWrapper: funktion som gör det möjligt att paketera funktionalitet runt funktionsanrop
Returnerar
Exempel
const client = await WebDriver.newSession({
capabilities: { browserName: 'chrome' }
})

attachToSession(attachInstance, modifier, userPrototype, customCommandWrapper)

Ansluter till en pågående WebDriver eller DevTools-session.

Parametrar
  • attachInstance: instans att ansluta en session till eller åtminstone ett objekt med en egenskap sessionId (t.ex. { sessionId: 'xxx' })
  • modifier: funktion som tillåter modifiering av klientinstansen innan den returneras
  • userPrototype: egenskapsobjekt som låter dig utöka instansprototypen
  • customCommandWrapper: funktion som gör det möjligt att paketera funktionalitet runt funktionsanrop
Returnerar
Exempel
const client = await WebDriver.newSession({...})
const clonedClient = await WebDriver.attachToSession(client)

reloadSession(instance)

Laddar om en session för en given instans.

Parametrar
  • instance: paketinstans att ladda om
Exempel
const client = await WebDriver.newSession({...})
await WebDriver.reloadSession(client)

webdriverio

På samma sätt som protokollpaketen (webdriver och devtools) kan du även använda WebdriverIO-paketets API:er för att hantera sessioner. API:erna kan importeras med import { remote, attach, multiremote } from 'webdriverio' och innehåller följande funktionalitet:

remote(options, modifier)

Startar en WebdriverIO-session. Instansen innehåller alla kommandon som protokollpaketet men med ytterligare funktioner av högre ordning, se API-docs.

Parametrar
  • options: WebdriverIO Options
  • modifier: funktion som tillåter modifiering av klientinstansen innan den returneras
Returnerar
Exempel
import { remote } from 'webdriverio'

const browser = await remote({
capabilities: { browserName: 'chrome' }
})

attach(attachOptions)

Ansluter till en pågående WebdriverIO-session.

Parametrar
  • attachOptions: instans att ansluta en session till eller åtminstone ett objekt med en egenskap sessionId (t.ex. { sessionId: 'xxx' })
Returnerar
Exempel
import { remote, attach } from 'webdriverio'

const browser = await remote({...})
const newBrowser = await attach(browser)

multiremote(multiremoteOptions)

Initierar en multiremote-instans som låter dig kontrollera flera sessioner inom en enda instans. Kolla in våra multiremote exempel för konkreta användningsfall.

Parametrar
  • multiremoteOptions: ett objekt med nycklar som representerar webbläsarnamnet och deras WebdriverIO Options.
Returnerar
Exempel
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

Istället för att anropa kommandot wdio kan du också inkludera testkörarmodulen och köra den i en godtycklig miljö. För detta behöver du importera @wdio/cli-paketet som en modul, så här:

import Launcher from '@wdio/cli'

Därefter skapar du en instans av startaren och kör testet.

Launcher(configPath, opts)

Konstruktören för Launcher-klassen förväntar sig URL:en till konfigurationsfilen och ett opts-objekt med inställningar som kommer att skriva över dem i konfigurationen.

Parametrar
  • configPath: sökväg till wdio.conf.js som ska köras
  • opts: argument (<RunCommandArguments>) för att skriva över värden från konfigurationsfilen
Exempel
const wdio = new Launcher(
'/path/to/my/wdio.conf.js',
{ spec: '/path/to/a/single/spec.e2e.js' }
)

wdio.run().then((exitCode) => {
process.exit(exitCode)
}, (error) => {
console.error('Launcher failed to start the test', error.stacktrace)
process.exit(1)
})

Kommandot run returnerar ett Promise. Det löses om testerna kördes framgångsrikt eller misslyckades, och det avvisas om startaren inte kunde starta testen.

@wdio/browser-runner

När du kör enhets- eller komponenttester med WebdriverIO:s webbläsarkörare kan du importera mockinverktyg för dina tester, t.ex.:

import { fn, spyOn, mock, unmock } from '@wdio/browser-runner'

Följande namngivna exporter är tillgängliga:

fn

Mockfunktion, se mer i de officiella Vitest-dokumenten.

spyOn

Spionerfunktion, se mer i de officiella Vitest-dokumenten.

mock

Metod för att mocka fil eller beroendemodulmodul.

Parametrar
  • moduleName: antingen en relativ sökväg till filen som ska mockas eller ett modulnamn.
  • factory: funktion för att returnera det mockade värdet (valfritt)
Exempel
mock('../src/constants.ts', () => ({
SOME_DEFAULT: 'mocked out'
}))

mock('lodash', (origModuleFactory) => {
const origModule = await origModuleFactory()
return {
...origModule,
pick: fn()
}
})

unmock

Avmocka beroende som definieras inom den manuella mock-katalogen (__mocks__).

Parametrar
  • moduleName: namnet på modulen som ska avmockas.
Exempel
unmock('lodash')

Welcome! How can I help?

WebdriverIO AI Copilot