execute
現在選択されているフレームのコンテキストでJavaScriptのスニペットを注入して実行します。スコープとして指定された要素を使用します。要素のスコープ上にあるため、WebdriverIOはスクリプトを実行する前に自動的に要素が存在するのを待ちます。 実行されるスクリプトは同期的であると見なされ、スクリプトの評価結果がクライアントに返されます。
script引数は、関数本体の形式で実行するスクリプトを定義します。その関数によって返される値がクライアントに返されます。関数は指定されたargs配列で呼び出され、その値は指定された順序でargumentsオブジェクトを介してアクセスできます。
引数はJSON-プリミティブ、配列、またはJSONオブジェクトを指定できます。WebElement参照を定義するJSONオブジ ェクトは、対応するDOM要素に変換されます。同様に、スクリプト結果内のWebElementsはWebElement JSONオブジェクトとしてクライアントに返されます。
使用法
$(selector).execute(script, arguments)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
script | String, Function | 実行するスクリプト。 |
arguments オプション | * | スクリプト引数 |
例
execute.js
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"
});
戻り値
- <*>
return
: スクリプトの結果。