メソッドについては知ってElement#wait_until_present(t)
いますが、このメソッドがタイムアウトすると、timeOut 例外がスローされます。
数秒待ってからt
、要素が存在する場合は true、そうでない場合は false を返すメソッドはありますか?
簡単なステートメントでできることはわかっていますが、begin..rescue..end
例外を使用しないものを探しています。
メソッドについては知ってElement#wait_until_present(t)
いますが、このメソッドがタイムアウトすると、timeOut 例外がスローされます。
数秒待ってからt
、要素が存在する場合は true、そうでない場合は false を返すメソッドはありますか?
簡単なステートメントでできることはわかっていますが、begin..rescue..end
例外を使用しないものを探しています。
rescue
次のような簡略句を書くことができます。
element_present = browser.element.wait_until_present rescue false
puts "element not present" unless element_present
ただし、これはwith だけでなくfalse
any の値にもなります。要素が存在しないと仮定する方が安全なので、私はまだそれを使用することを好みます。Exception
TimeoutError
Exception
私が探していることを行う他の方法はないように見えますが、
したがって、これを実現する最も簡単な方法は次のとおりです。
#check method for Element#wait_until_present(t)
def check_if_present(element,t)
raise ArgumentError, 't must be a number ' unless t.is_a? Numeric
begin
element.wait_until_present(t)
true
rescue Watir::Wait::TimeoutError
false
rescue
raise "Something wrong with the element"
end
end
例外が必要ない場合は、次のコードが便利です。
sleep 'your time here' 例: sleep 20 - これは 20 秒間待機します。
次に、要素を確認します。
「あなたの要素」.exists? -これは true/false を返します
この方法では例外は発生しません。
もう 1 つの最善の方法は、必要に応じて wait_for_load メソッドを作成することです。