0

Selenium 拡張機能の開発では、失敗した場合の正しい処理を検証するためのスクリプトを作成しています。残念ながら、IDE でこれらのコマンドを 1 つずつ実行し、各エラー メッセージを手動で調べる必要があります。私がやりたいことは、特定の方法で意図的に失敗する各コマンドの前に挿入できるカスタム Selenium コマンドを定義することです。例: willFail|expected-error-text。

言い換えれば、次のコマンドが指定されたエラー メッセージをスローした場合に結果が成功となり、スクリプトが続行されるように、Selenium コマンドの完了動作を変更したいと考えています。しかし、それが成功するか別のエラーをスローした場合、スクリプトはエラーで停止します。

これには、オブザーバー関数の設定、および/またはセレン関数のインターセプトが含まれると思います。問題は次のようになると思います。

  • 初期化の方法/場所。関連する Selenium オブジェクトを見つけるのは難しい場合があります。
  • 結果を変更するために何をいつ返すか。
  • 結果を変更することによって同期がずれているものは他にありますか?

PowerDebugger 拡張機能を使用すると、失敗時に IDE を一時停止してから再開できます。そのため、ハウツーがどこかにあるのではないかと思います。しかし、それが Selenium コマンド処理にどのように接続されているかはよくわかりません。サミット・バドル、そこにいますか?

Selenium IDE 2.2.0 を使用しています。

4

1 に答える 1

0

いくつかの実験で、関数TestLoop.resume()が各コマンドの結果を決定する責任があることがわかりました。で定義されていchrome/content/selenium-core/scripts/selenium-executionloop.jsます。この関数はコマンドを実行し、スクリプトを停止するか、続行できるようにします。

この動作を変更するために、Selenium 拡張機能は一時的にこの関数をカスタム バージョンに置き換えることができます。これを行うには、 の参照を保存し、editor.selDebugger.runner.IDETestLoop.prototype.resumeそれをカスタム関数に置き換えます。その後、カスタム関数はネイティブ関数を復元し、必要に応じてコマンドを実行する必要があります。

于 2013-09-03T23:32:08.330 に答える