execute
Wstrzykuje fragment kodu JavaScript do strony w celu wykonania go w kontekście aktualnie wybranej ramki, używając danego elementu jako zakresu. Ponieważ jest to w zakresie elementu, oznacza to, że WebdriverIO automatycznie poczeka na istnienie elementu przed wykonaniem skryptu. Zakłada się, że wykonywany skrypt jest synchroniczny, a wynik oceny skryptu jest zwracany do klienta.
Argument script definiuje skrypt do wykonania w formie ciała funkcji. Wartość zwrócona przez tę funkcję zostanie zwrócona do klienta. Funkcja zostanie wywołana z dostarczonym tablicą args, a wartości można uzyskać poprzez obiekt arguments w określonej kolejności.
Argumenty mogą być dowolnymi prymitywami JSON, tablicami lub obiektami JSON. Obiekty JSON definiujące referencję WebElement zostaną przekonwertowane na odpowiedni element DOM. Podobnie, każdy WebElement w wyniku skryptu zostanie zwrócony do klienta jako obiekt JSON WebElement.
Użycie
$(selector).execute(script, arguments)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
script | String, Function | Skrypt do wykonania. |
arguments opcjonalny | * | argumenty skryptu |
Przykład
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"
});
Zwraca
- <*>
return
: Wynik skryptu.