Vai al contenuto principale

addInitScript

Aggiunge uno script che verrà valutato in uno dei seguenti scenari:

  • Ogni volta che si naviga nella pagina.
  • Ogni volta che un frame figlio viene collegato o navigato. In questo caso, lo script viene valutato nel contesto del frame appena collegato.

Lo script viene valutato dopo che il documento è stato creato ma prima che qualsiasi script sia stato eseguito. Per rimuovere nuovamente lo script di inizializzazione dalla pagina, chiamare la funzione che è stata restituita da questa funzione.

Questo è utile per modificare l'ambiente JavaScript, ad esempio per inizializzare Math.random.

Utilizzo
browser.addInitScript(script, args)
Parametri
NomeTipoDettagli
scriptFunctionfunzione da iniettare come script di inizializzazione
argsnumber, string, booleanparametri per lo script
Esempi
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