3

メソッドについては知ってElement#wait_until_present(t)いますが、このメソッドがタイムアウトすると、timeOut 例外がスローされます。

数秒待ってからt、要素が存在する場合は true、そうでない場合は false を返すメソッドはありますか?

簡単なステートメントでできることはわかっていますが、begin..rescue..end例外を使用しないものを探しています。

4

3 に答える 3

5

rescue次のような簡略句を書くことができます。

element_present = browser.element.wait_until_present rescue false
puts "element not present" unless element_present

ただし、これはwith だけでなくfalseany の値にもなります。要素が存在しないと仮定する方が安全なので、私はまだそれを使用することを好みます。ExceptionTimeoutErrorException

于 2013-01-07T16:33:17.007 に答える
3

私が探していることを行う他の方法はないように見えますが、

したがって、これを実現する最も簡単な方法は次のとおりです。

#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
于 2013-01-07T09:20:42.147 に答える
1

例外が必要ない場合は、次のコードが便利です。

sleep 'your time here' 例: sleep 20 - これは 20 秒間待機します。

次に、要素を確認します。

「あなたの要素」.exists? -これは true/false を返します

この方法では例外は発生しません。

もう 1 つの最善の方法は、必要に応じて wait_for_load メソッドを作成することです。

于 2013-01-07T09:20:30.107 に答える