2017-07-17 10 views
0

私は、Webオートメーションについて学ぶために、CapybaraとセレンのWebドライバを使って遊んできました。私はカピバラで特定のページをリフレッシュしようとしていました。私はいくつかの方法を見てきましたが、それぞれ特定のケースで実現不可能にする問題があります。RubyでCapybaraのURLをリフレッシュする方法

session.visitリンクはセッションが既にそのリンクにあるため、何もしません。 私はsession.resetを行うことができます!しかし、私はログインを失う。

私が見た他のいくつかの方法 - カピバラの組み込み待機機能を使用しないでください。 これは、サーバーの負荷が高い場合、または制限されたDL/ULレートでのテストで 'リフレッシュ'が発生した場合、すぐに存在しないフィールドを探すことをすぐに試みます。ロードされます。

私の質問は具体的です - どのようにCapybaraの組み込み待機機能を使用してログインセッションを失うことなく、Capybaraのページを更新するのですか?

答えて

0

あなたはセレンを使用しているので、あなたはカピバラのmasterブランチを使用して

session.refresh 

か、現在のリリースのバージョンに固執し、ページ場合

session.driver.browser.navigate.refresh 

を呼び出すことができますを呼び出すことができますいずれかあなたはリフレッシュしようとしていますが、それはポップアップすることがあります "あなたはあなたがresbumitしたいと思いますか?"というようなものが必要な場合は、何かを必要とするでしょう

session.accept_confirm do 
    session.driver.browser.navigate.refresh 
end 
+0

session.refreshはページがリロードされるのを待ちますか?このページは今は非常に遅いと私はsession.refreshしてsession.click_button( "Button_play")を持っていると想像してください。 Button_playがまだライブされていない場合 - リフレッシュ後かもしれません - session.refreshは待機しますか? – Leon92

+0

@ Leon92ページの読み込みは決して保証されません。ページが更新された後に変更されるものについて、期待値を設定する必要があります。リフレッシュ前にButton_playが存在しなかった場合、 'click_button( 'Button_play')'はボタンが表示されるのを待ちます(Capybara.default_wait_time秒まで)。潜在的に長く待つ必要がある場合は、 'click_button'コールで' click_button( 'Button_play'、wait:60) 'を指定することができます。' - Button_play 'が表示されるまで数分待ってからクリックします。 –

関連する問題