execute

execute

仕様書

実装

[2] ChromeDriverGeckoDriver も、旧エンドポイントexecuteexecute_async に対応しています。

[3] GeckoDriverexecute でも execute/sync でも、 約束が返されたら約束解決されてから結果を返します。 ChromeDriver約束オブジェクト自体を返します (が JSON で表せないので、 空のオブジェクトになります)。

[1] GeckoDriverexecuteexecute/sync で返した約束拒絶されたとき、 エラーでなく成功として返してきます。 そのため約束が成功裏に解決された場合と区別できません。

[4] ChromeDriverexecute_async は、 タイムアウトの既定値が0秒になっています。 すぐに実行できる約束コールバックなどがなくなれば、 すぐにタイムアウトエラーを返します。 GeckoDriverexecute_async は、 タイムアウトの既定値が数分に設定されているようです。

[5] ChromeDriver では、 navigate を発生させるメソッドを実行してから、 Promiseコールバックを経て非同期的execute_asyncコールバックを呼び出すことにしていると、 navigate による unload が先に発生して、 WebDriver がエラー応答を返すことがあるようです。(微妙なタイミングの問題なので、 先にコールバックが呼び出されて成功の応答が返ることもあります。) GeckoDriver はそのようなことはなさそうですが、必ずかはわかりません。

[7] Error === window.ErrorChrome ではですが、 Firefox ではです。