Hoppa till huvudinnehåll

Funktioner

En capability är en definition för ett fjärrgränssnitt. Det hjälper WebdriverIO att förstå i vilken webbläsare eller mobilmiljö du vill köra dina tester på. Capabilities är mindre avgörande när du utvecklar tester lokalt eftersom du oftast kör dem på ett fjärrgränssnitt, men blir viktigare när du kör en stor uppsättning integrationstester i CI/CD.

info

Formatet för ett capability-objekt är väl definierat av WebDriver-specifikationen. WebdriverIO-testrunner kommer att misslyckas tidigt om användardefinierade capabilities inte följer denna specifikation.

Anpassade Capabilities​

Medan antalet fast definierade capabilities är mycket lågt, kan alla tillhandahålla och acceptera anpassade capabilities som är specifika för automationsdrivrutinen eller fjärrgränssnittet:

Webbläsarspecifika Capability-tillägg​

  • goog:chromeOptions: Chromedriver-tillägg, endast tillämpligt för testning i Chrome
  • moz:firefoxOptions: Geckodriver-tillägg, endast tillämpligt för testning i Firefox
  • ms:edgeOptions: EdgeOptions för att specificera miljön när du använder EdgeDriver för att testa Chromium Edge

Cloud-leverantörers Capability-tillägg​

Automationsmotor Capability-tillägg​

WebdriverIO Capabilities för att hantera webbläsardrivrutinsalternativ​

WebdriverIO hanterar installation och körning av webbläsardrivrutiner åt dig. WebdriverIO använder en anpassad capability som låter dig skicka in parametrar till drivrutinen.

wdio:chromedriverOptions​

Specifika alternativ som skickas till Chromedriver vid start.

wdio:geckodriverOptions​

Specifika alternativ som skickas till Geckodriver vid start.

wdio:edgedriverOptions​

Specifika alternativ som skickas till Edgedriver vid start.

wdio:safaridriverOptions​

Specifika alternativ som skickas till Safari vid start.

wdio:maxInstances​

Maximalt antal totala parallella arbetare för den specifika webbläsaren/capability. Har företräde framför maxInstances och maxInstancesPerCapability.

Typ: number

wdio:specs​

Definiera specs för testkörning för den webbläsaren/capability. Samma som det vanliga specs-konfigurationsalternativet, men specifikt för webbläsaren/capability. Har företräde framför specs.

Typ: (String | String[])[]

wdio:exclude​

Uteslut specs från testkörning för den webbläsaren/capability. Samma som det vanliga exclude-konfigurationsalternativet, men specifikt för webbläsaren/capability. Utesluter efter att det globala exclude-konfigurationsalternativet har tillämpats.

Typ: String[]

wdio:enforceWebDriverClassic​

Som standard försöker WebdriverIO etablera en WebDriver Bidi-session. Om du inte föredrar det kan du ställa in denna flagga för att inaktivera detta beteende.

Typ: boolean

Vanliga drivrutinsalternativ​

Medan alla drivrutiner erbjuder olika parametrar för konfiguration, finns det några gemensamma som WebdriverIO förstår och använder för att konfigurera din drivrutin eller webbläsare:

cacheDir​

Sökvägen till roten av cache-katalogen. Denna katalog används för att lagra alla drivrutiner som laddas ner vid försök att starta en session.

Typ: string
Standard: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()

binary​

Sökväg till en anpassad drivrutinsbinär. Om inställd kommer WebdriverIO inte att försöka ladda ner en drivrutin utan kommer att använda den som tillhandahålls av denna sökväg. Se till att drivrutinen är kompatibel med den webbläsare du använder.

Du kan ange denna sökväg via miljövariablerna CHROMEDRIVER_PATH, GECKODRIVER_PATH eller EDGEDRIVER_PATH.

Typ: string

försiktighet

Om drivrutinens binary är inställd kommer WebdriverIO inte att försöka ladda ner en drivrutin utan kommer att använda den som tillhandahålls av denna sökväg. Se till att drivrutinen är kompatibel med den webbläsare du använder.

Webbläsarspecifika drivrutinsalternativ​

För att skicka alternativ till drivrutinen kan du använda följande anpassade capabilities:

  • Chrome eller Chromium: wdio:chromedriverOptions
  • Firefox: wdio:geckodriverOptions
  • Microsoft Edge: wdio:edgedriverOptions
  • Safari: wdio:safaridriverOptions
adbPort​

Porten som ADB-drivrutinen ska köras på.

Exempel: 9515

Typ: number

urlBase​

Bas-URL-sökvägsprefix för kommandon, t.ex. wd/url.

Exempel: /

Typ: string

logPath​

Skriv serverlogg till fil istället för stderr, ökar loggnivån till INFO

Typ: string

logLevel​

Ställ in loggnivå. Möjliga alternativ ALL, DEBUG, INFO, WARNING, SEVERE, OFF.

Typ: string

verbose​

Logga utförligt (motsvarande --log-level=ALL)

Typ: boolean

silent​

Logga ingenting (motsvarande --log-level=OFF)

Typ: boolean

appendLog​

Lägg till i loggfilen istället för att skriva över.

Typ: boolean

replayable​

Logga utförligt och truncera inte långa strängar så att loggen kan spelas upp (experimentell).

Typ: boolean

readableTimestamp​

Lägg till läsbara tidsstämplar i loggen.

Typ: boolean

enableChromeLogs​

Visa loggar från webbläsaren (åsidosätter andra loggningsalternativ).

Typ: boolean

bidiMapperPath​

Anpassad bidi-mapper-sökväg.

Typ: string

allowedIps​

Kommaseparerad vitlista över fjärr-IP-adresser som tillåts ansluta till EdgeDriver.

Typ: string[]
Standard: ['']

allowedOrigins​

Kommaseparerad vitlista över förfrågningsursprung som tillåts ansluta till EdgeDriver. Att använda * för att tillåta vilket värdursprung som helst är farligt!

Typ: string[]
Standard: ['*']

spawnOpts​

Alternativ som ska skickas till drivrutinsprocessen.

Typ: SpawnOptionsWithoutStdio | SpawnOptionsWithStdioTuple<StdioOption, StdioOption, StdioOption>
Standard: undefined

Speciella Capabilities för specifika användningsfall​

Detta är en lista med exempel som visar vilka capabilities som behöver användas för att uppnå ett visst användningsfall.

Kör webbläsare i Headless-läge​

Att köra en webbläsare i headless-läge innebär att köra en webbläsarinstans utan fönster eller UI. Detta används oftast i CI/CD-miljöer där ingen skärm används. För att köra en webbläsare i headless-läge, använd följande capabilities:

{
browserName: 'chrome', // eller 'chromium'
'goog:chromeOptions': {
args: ['headless', 'disable-gpu']
}
}

Automatisera olika webbläsarkanaler​

Om du vill testa en webbläsarversion som ännu inte har släppts som stabil, t.ex. Chrome Canary, kan du göra det genom att ställa in capabilities och peka på den webbläsare du vill starta, t.ex.:

När du testar på Chrome kommer WebdriverIO automatiskt att ladda ner önskad webbläsarversion och drivrutin baserat på den definierade browserVersion, t.ex.:

{
browserName: 'chrome', // eller 'chromium'
browserVersion: '116' // eller '116.0.5845.96', 'stable', 'dev', 'canary', 'beta' eller 'latest' (samma som 'canary')
}

Om du vill testa en manuellt nedladdad webbläsare kan du ange en binär sökväg till webbläsaren via:

{
browserName: 'chrome', // eller 'chromium'
'goog:chromeOptions': {
binary: '/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary'
}
}

Dessutom, om du vill använda en manuellt nedladdad drivrutin, kan du ange en binär sökväg till drivrutinen via:

{
browserName: 'chrome', // eller 'chromium'
'wdio:chromedriverOptions': {
binary: '/path/to/chromdriver'
}
}

Utöka anpassade Capabilities​

Om du vill definiera din egen uppsättning capabilities, t.ex. för att lagra godtyckliga data som ska användas inom testerna för den specifika capability, kan du göra det genom att t.ex. ställa in:

export const config = {
// ...
capabilities: [{
browserName: 'chrome',
'custom:caps': {
// anpassade konfigurationer
}
}]
}

Det rekommenderas att följa W3C-protokollet när det gäller capability-namngivning, vilket kräver ett : (kolon) tecken som anger ett implementationsspecifikt namespace. Inom dina tester kan du komma åt din anpassade capability genom, t.ex.:

browser.capabilities['custom:caps']

För att säkerställa typsäkerhet kan du utöka WebdriverIOs capability-gränssnitt via:

declare global {
namespace WebdriverIO {
interface Capabilities {
'custom:caps': {
// ...
}
}
}
}

Welcome! How can I help?

WebdriverIO AI Copilot