executeAsync
Il comando executeAsync
è deprecato e sarà rimosso in una versione futura.
Si prega di utilizzare il comando execute
invece, poiché fornisce un migliore supporto per
la gestione degli errori tramite async
/await
.
Inserisce un frammento di JavaScript nella pagina per l'esecuzione nel contesto del frame attualmente selezionato. Si presume che lo script eseguito sia asincrono e deve segnalare la sua conclusione invocando il callback fornito, che è sempre fornito come argomento finale alla funzione. Il valore passato a questo callback sarà restituito al client.
I comandi di script asincroni non possono estendersi su più caricamenti di pagina. Se viene attivato un evento di scaricamento mentre si attende il risultato di uno script, un errore dovrebbe essere restituito al client.
L'argomento script definisce lo script da eseguire sotto forma di corpo della funzione. La funzione sarà invocata con l'array di argomenti fornito e i valori possono essere accessibili tramite l'oggetto arguments nell'ordine specificato. L'argomento finale sarà sempre una funzione di callback che deve essere invocata per segnalare che lo script è terminato.
Gli argomenti possono essere qualsiasi JSON-primitivo, array o oggetto JSON. Gli oggetti JSON che definiscono un riferimento WebElement saranno convertiti nell'elemento DOM corrispondente. Allo stesso modo, qualsiasi WebElement nel risultato dello script sarà restituito al client come oggetti JSON WebElement.
Si prega di utilizzare execute
invece
Utilizzo
browser.executeAsync(script, arguments)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
script | String, Function | Lo script da eseguire. |
arguments opzionale | * | argomenti dello script |
Esempio
it('should execute async JavaScript on the page', async () => {
await browser.setTimeout({ script: 5000 })
const result = await browser.executeAsync(function(a, b, c, d, done) {
// browser context - you may not access client or console
setTimeout(() => {
done(a + b + c + d)
}, 3000);
}, 1, 2, 3, 4)
// node.js context - client and console are available
console.log(result) // outputs: 10
});
Restituisce
- <*>
return
: Il risultato dello script.