execute
Injeta um trecho de JavaScript na página para execução no contexto do frame atualmente selecionado usando o elemento fornecido como escopo, porque está no escopo do elemento, significa que o WebdriverIO irá automaticamente esperar que o elemento exista antes de executar o script. Assume-se que o script executado seja síncrono e o resultado da avaliação do script é retornado ao cliente.
O argumento script define o script a ser executado na forma de um corpo de função. O valor retornado por essa função será retornado ao cliente. A função será invocada com o array de args fornecido e os valores podem ser acessados através do objeto arguments na ordem especificada.
Os argumentos podem ser qualquer JSON-primitivo, array ou objeto JSON. Objetos JSON que definem uma referência WebElement serão convertidos para o elemento DOM correspondente. Da mesma forma, qualquer WebElement no resultado do script será retornado ao cliente como objetos JSON WebElement.
Uso
$(selector).execute(script, arguments)
Parâmetros
Nome | Tipo | Detalhes |
---|---|---|
script | String, Function | O script a ser executado. |
arguments opcional | * | argumentos do script |
Exemplo
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"
});