あなたの助けが必要です。エラーや要素が見つからない場合でも、Firefox で Selenium IDE スクリプトを続行したいだけです。HTML形式のスクリプトを使用しています。
7 に答える
関連するすべてのverify
コマンドを使用すると、seleniun IDEassert
で要素が見つからない場合、スクリプトは停止しませんが、関連するコマンドを使用すると、その要素が Selenium IDE で見つからない場合、スクリプトは停止します
コマンドを使用してスクリプトを作成する必要がある場合は、verifytext
そのスクリプトを実行し、要素が表示されていない場合にスクリプトが停止しないことを確認します
エラーをキャッチしてスクリプトを続行するために、「catch」メソッドを実装するプラグイン Selblocks を使用することもできます。try/catch/finally ブロック Try は、エラーがスローされたときに特別な処理を提供し、たとえば「クリーンアップ」ロジックの実行を保証できます。
catch ブロックは、try ブロックでエラーがスローされた場合の対処方法を指定します。つまり、try ブロック内、または try ブロック内から呼び出された関数またはサブ関数内のいずれかのステートメントがエラーをスローした場合、制御は一致する catch ブロックにジャンプし、エラーはクリアされます。try ブロックでエラーがスローされない場合、catch ブロックはスキップされます。Catch は、「部分文字列」または /regular expression/ として指定されたエラー メッセージを照合することにより、特定のエラーをインターセプトします。仕様を指定しないと、すべてのエラーがキャッチされます。
finally ブロックは、try ブロックと catch ブロックの後に実行されます。エラーがスローまたはキャッチされたかどうかに関係なく、常に実行されます。try または catch ブロックが「フロー変更」コマンド (continue、break、return、または exitTest コマンド) によって終了する場合でも実行されます。
Try ブロックは入れ子にすることができます。内側の try がエラーをキャッチしない場合は、それを囲む try/catch が入力されます。ネストされたすべての finally ブロックの内容は、途中でエラーが発生した場合でも、最内から最外へと実行されることが保証されます。
catch と finally はどちらもオプションですが、どちらも指定されていない場合、try はまったく効果がありません。
オプションの識別子は、try および endTry で指定できます。これは、適切なペアリングについて検証されます。
try/catch/finally の例 try|outer try|inner throw|"blamo" getEval|alert("このアラートは実行されません") finally getEval|alert("1st") endTry|inner catch|/blamo/ getEval| alert("2nd") endTry|outer ここで詳細を読むことができますhttp://refactoror.wikia.com/wiki/Selblocks_Reference
SELECT
コマンドを使用した例で、問題を解決した方法を次に示します。
通常のように動作するが、要素が見つからない場合でもテストを停止しないtrySelect
カスタム コマンドを作成しました。select
1) 次のコードでファイル「user-extensions.js」を作成します
Selenium.prototype.doTrySelect = function(locator,target) {
try {
return Selenium.prototype.doSelect.call(this,locator,target);
} catch(err) { return null; }
};
2) Selenium IDE => オプション => オプション => 一般: 以下のように、3 番目の入力に「user-extensions.js」ファイルを追加します。
3) Selenium IDE を再起動します。
4) 使用例 (通常の SELECT と同様)
trySelect | //select | label=regexpi:.*Hey.*
click
たとえば、失敗する可能性のある他のコマンドについても同じことができます。
Selenium IDE プラグインは、記録用に設計されています (つまり、アクションの背後にあるコードを表示します)。ある程度の再生は可能ですが、それはかなり制限されており、エラーを処理できるかどうかはわかりません. 実際のプログラミングを使用する意思がある場合は、エラーを簡単に処理できます。たとえば、Python では次のようなものを使用できます。
try:
driver.find_element_by_id("userid").click()
except NoSuchElementException:
# do something else (close page, give you a warning, etc)