executeAsync
警告
`executeAsync` コマンドは非推奨であり、将来のバージョンで削除されます。`async`/`await` によるエラー処理のサポートが強化されているため、代わりに `execute` コマンドを使用してください。
現在選択されているフレームのコンテキストで実行するために、JavaScript のスニペットをページに挿入します。実行されるスクリプトは非同期と想定され、提供されたコールバックを呼び出すことによって完了を通知する必要があります。このコールバックは、常に関数の最後の引数として提供されます。このコールバックの値はクライアントに返されます。
非同期スクリプトコマンドは、ページの読み込みをまたがってはなりません。スクリプトの結果を待機している間にアンロードイベントが発生した場合、エラーがクライアントに返される必要があります。
script 引数は、関数本体の形式で実行するスクリプトを定義します。関数は、指定された args 配列を使用して呼び出され、値は指定された順序で arguments オブジェクトを介してアクセスできます。最後の引数は、スクリプトが完了したことを通知するために呼び出す必要があるコールバック関数です。
引数は、JSON プリミティブ、配列、または JSON オブジェクトです。WebElement 参照を定義する JSON オブジェクトは、対応する DOM 要素に変換されます。同様に、スクリプト結果の WebElement は、WebElement JSON オブジェクトとしてクライアントに返されます。
注意
true
使用方法
browser.executeAsync(script, arguments)
パラメータ
名前 | 型 | 詳細 |
---|---|---|
script | String , Function | 実行するスクリプト。 |
arguments オプション | param | スクリプト引数 |
例
executeAsync.js
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
});