executeAsync
Der Befehl executeAsync
ist veraltet und wird in einer zukünftigen Version entfernt.
Bitte verwenden Sie stattdessen den Befehl execute
, da er eine bessere Unterstützung für
Fehlerbehandlung über async
/await
bietet.
Fügt einen JavaScript-Ausschnitt in die Seite zur Ausführung im Kontext des aktuell ausgewählten Frame ein. Das ausgeführte Skript wird als asynchron angenommen und muss signalisieren, dass es fertig ist, indem es den bereitgestellten Callback aufruft, der immer als letztes Argument an die Funktion übergeben wird. Der Wert dieses Callbacks wird an den Client zurückgegeben.
Asynchrone Skriptbefehle dürfen keine Seitenladevorgänge überspannen. Wenn ein Unload-Event ausgelöst wird, während auf ein Skriptergebnis gewartet wird, sollte ein Fehler an den Client zurückgegeben werden.
Das Skriptargument definiert das auszuführende Skript in Form eines Funktionskörpers. Die Funktion wird mit dem bereitgestellten args-Array aufgerufen, und auf die Werte kann über das arguments-Objekt in der angegebenen Reihenfolge zugegriffen werden. Das letzte Argument ist immer eine Callback-Funktion, die aufgerufen werden muss, um zu signalisieren, dass das Skript beendet wurde.
Argumente können beliebige JSON-Primitive, Arrays oder JSON-Objekte sein. JSON-Objekte, die eine WebElement-Referenz definieren, werden in das entsprechende DOM-Element konvertiert. Ebenso werden alle WebElements im Skriptergebnis als WebElement-JSON-Objekte an den Client zurückgegeben.
Bitte verwenden Sie stattdessen execute
Verwendung
browser.executeAsync(script, arguments)
Parameter
Name | Type | Details |
---|---|---|
script | String, Function | Das auszuführende Skript. |
arguments optional | * | Skriptargumente |
Beispiel
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
});
Gibt zurück
- <*>
return
: Das Skriptergebnis.