Hoppa till huvudinnehåll

addInitScript

Lägger till ett skript som utvärderas i ett av följande scenarier:

  • När sidan navigeras.
  • När en underram kopplas eller navigeras. I detta fall utvärderas skriptet i sammanhanget av den nyligen kopplade ramen.

Skriptet utvärderas efter att dokumentet har skapats men innan något av dess skript har körts. För att ta bort initialiseringsskriptet från sidan igen, anropa funktionen som returnerades av denna funktion.

Detta är användbart för att förbättra JavaScript-miljön, t.ex. för att så Math.random.

Användning
browser.addInitScript(script, args)
Parametrar
NamnTypDetaljer
scriptFunctionfunktion som ska injiceras som initialiseringsskript
argsnumber, string, booleanparametrar för skriptet
Exempel
addInitScript.js
const script = await browser.addInitScript((seed) => {
Math.random = () => seed
}, 42)

await browser.url('https://webdriver.io')
console.log(await browser.execute(() => Math.random())) // returns 42

await reset()
await browser.url('https://webdriver.io')
console.log(await browser.execute(() => Math.random())) // returns a random number

hermore you can also use the `emit` function to send data back to the Node.js environment.
is useful if you want to observe certain events in the browser environment, e.g.:

addInitScriptWithEmit.js
const script = await browser.addInitScript((emit) => {
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
emit(mutation.target.nodeName)
}
})
observer.observe(document, { childList: true, subtree: true })
})

script.on('data', (data) => {
console.log(data) // prints: BODY, DIV, P, ...
})

Welcome! How can I help?

WebdriverIO AI Copilot