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