Hoppa till huvudinnehåll

Metodalternativ

Metodalternativ är de alternativ som kan ställas in per metod. Om alternativet har samma nyckel som ett alternativ som har ställts in under instansieringen av tillägget, kommer detta metodalternativ att åsidosätta pluginalternativets värde.

OBS
  • Alla alternativ från Spara-alternativ kan användas för Jämförelse-metoderna
  • Alla jämförelsealternativ kan användas under tjänsteinstansiering eller för varje enskild kontrollmetod. Om ett metodalternativ har samma nyckel som ett alternativ som har ställts in under instansieringen av tjänsten, kommer metodens jämförelsealternativ att åsidosätta tjänstens jämförelsealternativ.
  • Alla alternativ kan användas för nedanstående applikationskontexter om inget annat anges:
    • Webb
    • Hybrid-app
    • Nativ app
  • Nedanstående exempel använder save*-metoderna, men kan även användas med check*-metoderna

Save Options

disableBlinkingCursor

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: false
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Aktivera/inaktivera alla input, textarea, [contenteditable] markörers "blinkande" i applikationen. Om satt till true kommer markören att ställas in på transparent innan en skärmdump tas och återställas när det är klart.

await browser.saveScreen(
'sample-tag',
{
disableBlinkingCursor: true
}
)

disableCSSAnimation

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: false
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Aktivera/inaktivera alla CSS-animationer i applikationen. Om satt till true kommer alla animationer att inaktiveras innan en skärmdump tas och återställas när det är klart

await browser.saveScreen(
'sample-tag',
{
disableCSSAnimation: true
}
)

enableLegacyScreenshotMethod

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: false
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Använd detta alternativ för att återgå till den "äldre" skärmdumpmetoden baserad på W3C-WebDriver-protokollet. Detta kan vara användbart om dina tester förlitar sig på befintliga baslinjebilder eller om du kör i miljöer som inte fullt stöder de nyare BiDi-baserade skärmdumparna. Observera att aktivering av detta kan producera skärmdumpar med något annorlunda upplösning eller kvalitet.

await browser.saveScreen(
'sample-tag',
{
enableLegacyScreenshotMethod: true
}
)

enableLayoutTesting

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: false
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Detta döljer all text på en sida så att endast layouten används för jämförelse. Döljning görs genom att lägga till stilen 'color': 'transparent !important' till varje element.

För utdatan se Testutdata.

info

Genom att använda denna flagga kommer varje element som innehåller text (alltså inte bara p, h1, h2, h3, h4, h5, h6, span, a, li, utan också div|button|..) få denna egenskap. Det finns ingen möjlighet att anpassa detta.

await browser.saveScreen(
'sample-tag',
{
enableLayoutTesting: true
}
)

hideScrollBars

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: true
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Dölj rullningslist(er) i applikationen. Om satt till true kommer alla rullningslist(er) att inaktiveras innan en skärmdump tas. Detta är standard true för att förhindra extra problem.

await browser.saveScreen(
'sample-tag',
{
hideScrollBars: false
}
)

hideElements

  • Typ: array
  • Obligatorisk: Nej
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Denna metod kan dölja 1 eller flera element genom att lägga till egenskapen visibility: hidden till dem genom att tillhandahålla en array av element.

await browser.saveScreen(
'sample-tag',
{
hideElements: [
await $('#element-1'),
await $('#element-2'),
]
}
)

removeElements

  • Typ: array
  • Obligatorisk: Nej
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Denna metod kan ta bort 1 eller flera element genom att lägga till egenskapen display: none till dem genom att tillhandahålla en array av element.

await browser.saveScreen(
'sample-tag',
{
removeElements: [
await $('#element-1'),
await $('#element-2'),
]
}
)

resizeDimensions

  • Typ: object
  • Obligatorisk: Nej
  • Standard: { top: 0, right: 0, bottom: 0, left: 0}
  • Används med: Endast för saveElement eller checkElement
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy), Nativ app

Ett objekt som behöver innehålla ett antal pixlar för top, right, bottom och left som behövs för att göra elementutklippet större.

await browser.saveElement(
'sample-tag',
{
resizeDimensions: {
top: 50,
left: 100,
right: 10,
bottom: 90,
},
}
)

userBasedFullPageScreenshot

När detta är satt till true, aktiverar det rulla-och-klistra-strategin för att fånga helsidesbilder. Istället för att använda webbläsarens inbyggda skärmdumpskapacitet, rullar den manuellt genom sidan och syr ihop flera skärmdumpar. Denna metod är särskilt användbar för sidor med lat-inladdat innehåll eller komplexa layouter som kräver rullning för att helt renderas.

await browser.saveScreen(
'sample-tag',
{
userBasedFullPageScreenshot: true
}
)

fullPageScrollTimeout

  • Typ: number
  • Obligatorisk: Nej
  • Standard: 1500
  • Används med: Endast för saveFullPageScreen eller saveTabbablePage
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Timeoutvärdet i millisekunder att vänta efter en rullning. Detta kan hjälpa till att identifiera sidor med lazy loading.

OBS: Detta fungerar endast när userBasedFullPageScreenshot är satt till true

await browser.saveFullPageScreen(
'sample-tag',
{
fullPageScrollTimeout: 3 * 1000
}
)

hideAfterFirstScroll

Denna metod döljer ett eller flera element genom att lägga till egenskapen visibility: hidden till dem genom att tillhandahålla en array av element. Detta är praktiskt när en sida till exempel har klibbiga element som rullar med sidan när sidan rullas men ger en irriterande effekt när en helsidesbilds tas

OBS: Detta fungerar endast när userBasedFullPageScreenshot är satt till true

await browser.saveFullPageScreen(
'sample-tag',
{
hideAfterFirstScroll: [
await $('#element-1'),
await $('#element-2'),
]
}
)

waitForFontsLoaded

  • Typ: boolean
  • Obligatorisk: Nej
  • Standard: true
  • Används med: Alla metoder
  • Stödda applikationskontexter: Webb, Hybrid-app (Webbvy)

Teckensnitt, inklusive teckensnitt från tredje part, kan laddas synkront eller asynkront. Asynkron laddning innebär att teckensnitt kan laddas efter att WebdriverIO har bestämt att en sida har laddats klart. För att förhindra problem med teckensnittsrendering kommer denna modul som standard att vänta på att alla teckensnitt laddas innan en skärmdump tas.

await browser.saveScreen(
'sample-tag',
{
waitForFontsLoaded: true
}
)

Compare (Check) Options

Jämförelsealternativ är alternativ som påverkar hur jämförelsen, av ResembleJS, utförs.

ignoreAlpha

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Jämför bilder och bortse från alfa.

await browser.checkScreen(
'sample-tag',
{
ignoreAlpha: true
}
)

blockOutSideBar

  • Typ: boolean
  • Standard: true
  • Obligatorisk: Nej
  • Används med: Kan endast användas för checkScreen(). Detta är endast för iPad
  • Stödda applikationskontexter: Alla

Blockerar automatiskt sidofältet för iPads i landskapsläge under jämförelser. Detta förhindrar fel på fliken/privat/bokmärke nativa komponenter.

await browser.checkScreen(
'sample-tag',
{
blockOutSideBar: true
}
)

blockOutStatusBar

  • Typ: boolean
  • Standard: true
  • Obligatorisk: Nej
  • Används med: Detta är endast för mobiler
  • Stödda applikationskontexter: Hybrid (nativ del) och nativa appar

Blockerar automatiskt status- och adressfältet under jämförelser. Detta förhindrar fel på tid, wifi eller batteristatus.

await browser.checkScreen(
'sample-tag',
{
blockOutStatusBar: true
}
)

blockOutToolBar

  • Typ: boolean
  • Standard: true
  • Obligatorisk: Nej
  • Används med: Detta är endast för mobiler
  • Stödda applikationskontexter: Hybrid (nativ del) och nativa appar

Blockerar automatiskt verktygsfältet.

await browser.checkScreen(
'sample-tag',
{
blockOutToolBar: true
}
)

ignoreAntialiasing

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Jämför bilder och bortse från anti-aliasing.

await browser.checkScreen(
'sample-tag',
{
ignoreAntialiasing: true
}
)

ignoreColors

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Även om bilderna är i färg, kommer jämförelsen att jämföra 2 svartvita bilder

await browser.checkScreen(
'sample-tag',
{
ignoreColors: true
}
)

ignoreLess

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Jämför bilder och jämför med red = 16, green = 16, blue = 16, alpha = 16, minBrightness=16, maxBrightness=240

await browser.checkScreen(
'sample-tag',
{
ignoreLess: true
}
)

ignoreNothing

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Jämför bilder och jämför med red = 0, green = 0, blue = 0, alpha = 0, minBrightness=0, maxBrightness=255

await browser.checkScreen(
'sample-tag',
{
ignoreNothing: true
}
)

rawMisMatchPercentage

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Om true kommer returprocenten att vara som 0.12345678, standard är 0.12

await browser.checkScreen(
'sample-tag',
{
rawMisMatchPercentage: true
}
)

returnAllCompareData

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Detta kommer att returnera all jämförelseinformation, inte bara skillnadsprocenten, se även Konsolutmatning

await browser.checkScreen(
'sample-tag',
{
returnAllCompareData: true
}
)

saveAboveTolerance

  • Typ: number
  • Standard: 0
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Tillåtet värde av misMatchPercentage som förhindrar att bilder med skillnader sparas

await browser.checkScreen(
'sample-tag',
{
saveAboveTolerance: 0.25
}
)

largeImageThreshold

  • Typ: number
  • Standard: 0
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Jämförelse av stora bilder kan leda till prestandaproblem. När du anger ett antal pixlar här (högre än 0), hoppar jämförelsealgoritmn över pixlar när bildbredden eller höjden är större än largeImageThreshold pixlar.

await browser.checkScreen(
'sample-tag',
{
largeImageThreshold: 1500
}
)

scaleImagesToSameSize

  • Typ: boolean
  • Standard: false
  • Obligatorisk: Nej
  • Används med: Alla Check-metoder
  • Stödda applikationskontexter: Alla

Skalar 2 bilder till samma storlek innan jämförelsen utförs. Starkt rekommenderat att aktivera ignoreAntialiasing och ignoreAlpha

await browser.checkScreen(
'sample-tag',
{
scaleImagesToSameSize: true
}
)

ignore

  • Typ: array
  • Obligatorisk: Nej
  • Används med: Endast med checkScreen-metoden, INTE med checkElement-metoden
  • Stödda applikationskontexter: Nativ app

Denna metod blockerar automatiskt element eller ett område på en skärm baserat på en array av element eller ett objekt med x|y|width|height.

await browser.checkScreen(
'sample-tag',
{
ignore: [
$('~element-1'),
await $('~element-2'),
{
x: 150,
y: 250,
width: 100,
height: 100,
}
]
}
)

Mappoptioner

Baslinjemappen och skärmdumpsmapparna (faktisk, diff) är alternativ som kan ställas in under instansieringen av tillägget eller metoden. För att ställa in mappalternativ för en viss metod, skicka in mappalternativ till metodens alternativobjekt. Detta kan användas för:

  • Webb
  • Hybrid-app
  • Nativ app
import path from 'node:path'

const methodOptions = {
actualFolder: path.join(process.cwd(), 'customActual'),
baselineFolder: path.join(process.cwd(), 'customBaseline'),
diffFolder: path.join(process.cwd(), 'customDiff'),
}

// Du kan använda detta för alla metoder
await expect(
await browser.checkFullPageScreen("checkFullPage", methodOptions)
).toEqual(0)

actualFolder

  • Typ: string
  • Obligatorisk: Nej
  • Stödda applikationskontexter: Alla

Mapp för den skärmdump som har tagits i testet.

baselineFolder

  • Typ: string
  • Obligatorisk: Nej
  • Stödda applikationskontexter: Alla

Mapp för baslinjebilden som används för att jämföra med.

diffFolder

  • Typ: string
  • Obligatorisk: Nej
  • Stödda applikationskontexter: Alla

Mapp för bilddifferensen som renderas av ResembleJS.

Welcome! How can I help?

WebdriverIO AI Copilot