execute
Injiziert ein JavaScript-Snippet in die Seite zur Ausführung im Kontext des aktuell ausgewählten Frames, wobei das angegebene Element als Gültigkeitsbereich verwendet wird. Da es sich im Gültigkeitsbereich des Elements befindet, bedeutet dies, dass WebdriverIO automatisch darauf wartet, dass das Element existiert, bevor das Skript ausgeführt wird. Das ausgeführte Skript wird als synchron angenommen, und das Ergebnis der Auswertung des Skripts wird an den Client zurückgegeben.
Das Skriptargument definiert das auszuführende Skript in Form eines Funktionskörpers. Der von dieser Funktion zurückgegebene Wert wird an den Client zurückgegeben. Die Funktion wird mit dem angegebenen Args-Array aufgerufen, und auf die Werte kann über das Arguments-Objekt in der angegebenen Reihenfolge zugegriffen werden.
Argumente können ein JSON-Primitiv, Array oder JSON-Objekt sein. JSON-Objekte, die eine WebElement- Referenz definieren, werden in das entsprechende DOM-Element konvertiert. Ebenso werden alle WebElements im Skript- Ergebnis als WebElement-JSON-Objekte an den Client zurückgegeben.
Usage
$(selector).execute(script, arguments)
Parameters
Name | Type | Details |
---|---|---|
script | String, Function | Das auszuführende Skript. |
arguments optional | * | Skriptargumente |
Example
it('should wait for the element to exist, then executes javascript on the page with the element as first argument', async () => {
const text = await $('div').execute((elem, a, b, c, d) => {
return elem.textContent + a + b + c + d
}, 1, 2, 3, 4);
// node.js context - client and console are available
console.log(text); // outputs "Hello World1234"
});
Returns
- <*>
return
: Das Skriptergebnis.