メインコンテンツにスキップ

executeAsync

警告

executeAsyncコマンドは非推奨であり、将来のバージョンで削除される予定です。 代わりにexecuteコマンドを使用してください。executeコマンドはasync/awaitを介して より良いエラー処理のサポートを提供します。

現在選択されているフレームのコンテキストで実行するために、JavaScriptのスニペットをページに挿入します。実行されるスクリプトは非同期であると想定され、常に関数の最後の引数として提供されるコールバックを呼び出すことで完了を通知する必要があります。このコールバックに渡された値がクライアントに返されます。

非同期スクリプトコマンドはページの読み込みをまたぐことはできません。スクリプトの結果を待っている間にアンロードイベントが発生した場合、エラーがクライアントに返されるべきです。

script引数は関数本体の形式で実行するスクリプトを定義します。関数は提供されたargs配列とともに呼び出され、値は指定された順序でargumentsオブジェクトを介してアクセスできます。最後の引数は常にコールバック関数であり、スクリプトが終了したことを通知するために呼び出す必要があります。

引数はJSON型の基本データ型、配列、またはJSONオブジェクトです。WebElement参照を定義するJSONオブジェクトは、対応するDOM要素に変換されます。同様に、スクリプト結果内のWebElementはWebElement JSONオブジェクトとしてクライアントに返されます。

注意

代わりにexecuteを使用してください

使用法
browser.executeAsync(script, arguments)
パラメータ
名前詳細
scriptString, Function実行するスクリプト。
arguments
オプション
*スクリプトの引数
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
});
戻り値
  • <*> return: スクリプトの結果。

Welcome! How can I help?

WebdriverIO AI Copilot