私は悪夢のような Web サイトをテストしていますが、ほとんどの場合、すべての重要なものが iframe に貼り付けられています。
ただし、システムがページを新しいタブで開き、iframe でラップしないという厄介な状況が他にもよくあります。
iframe の存在を確認して使用する条件付きメソッドを見つけようとしています。
これまでのところ、私が思いついたものは次のとおりです。
# The browser object...
@br = Watir::Browser.new
「frm」は、私が機能させようとしている条件付きメソッドです...
# Just an example element definition...
def click_my_button
@br.frm.button(id: "button").click
end
次のように、Watir の Container モジュールで定義します。
module Watir
module Container
def frm
if frame(id: "iframeportlet").exist?
frame(id: "iframeportlet")
else
# This is the part that I can't figure out.
end
end
end
end
iframe がある場合は問題なく動作しますが、そうでない場合は驚くことではありませんが、NilClass エラーが発生します。
それで、私の質問は、それを機能させるためにelse句に何が入ることができますか? もっと広く言えば、これを達成するためのより良い方法はありますか? ご想像のとおり、Web サイトのすべての要素を 2 回定義する必要はありません。