こんにちは。
RubyのアプリをChrome用のWebDriverに乗せて、Rspecのテストを実装しています。
FFのアドオンでは、WaitAndClickなどに当たり、Rspecソースに変換すると↓このように出力されますが、
!60.times{ break if (@driver.find_element(:id, 'aaa').displayed? rescue false); sleep 1 }
いかんせん、動作が不安定で、別ロジックを組もうと思っています。
↑も、find_element()も使いたくありません。
イメージとしては、このようにJSで要素の取得可否をし、取得できるまで延々周り、
同期を取っているのですが、いくら回っても要素を取得できない事があります。
def js_click(ctrl_id)
begin
# 同期を取る(ID要素を捕まえるまで1秒間隔でループ)
loop do
element = @driver.execute_script("document.getElementById('" + ctrl_id + "');")
unless element.blank?
p element
next
end
sleep(1)
end
# JSで実行(WEB DRIVERが使えない)
@driver.execute_script("document.getElementById('" + ctrl_id + "').click();")
rescue Exception => e
p
'@:' + e.message.to_s
end
end
そこで、WebDriverのHTML要素(現在表示されている画面のHTML)を再取得するコマンドを探しているのですが、ありますでしょうか?