2017-12-06 10 views
0

私は、CapybaraによってスピンアップされたChromeのインスタンスで、onbeforeunloadから生成されるダイアログを無効にしたいと考えています。私は非常に大きなテストスイートを持っており、訪問/更新のたびに 'Leave'確認をクリックするコードを含めるように修正するのは実用的ではありません。前回の読み込みダイアログがテストの妨げにならないようにする

訪問とリフレッシュの前にpage.execute_script ‘window.onbeforeunload = undefined;’を追加しようとしましたが、これは動作していますが、すべての訪問と更新の呼び出しを修正する必要があるという問題があります。

この機能を無効にするために追加できるChrome CLIオプションがあるかどうか確認しましたが、関連するものは見つかりませんでした。私はここにチェックした:https://peter.sh/experiments/chromium-command-line-switches/しかし、アンロード、アラート、およびダイアログを検索した後、一致したものは何も関連していなかった。

私はChromedriver v2.33、Chrome 62、Capybara 2.5、およびSelenium-webdriver 2.53.4を使用しています。必要に応じてこの投稿を詳細情報で更新します。

これは可能ですか? - カピバラvisitrefresh方法あなたのアプリがそれほどbeforeunloadアラートを登録している場合は、あなたの設計上の選択を再考したい場合があります、が、常に呼び出すあなたexecute_script最初の最も簡単な解決策は

module BeforeUnloadDisabler 
    def visit(*args) 
    execute_script 'window.onbeforeunload = undefined;' 
    super 
    end 

    def refresh(*args) 
    execute_script 'window.onbeforeunload = undefined;' 
    super 
    end 
end 

::Capybara::Session.prepend(BeforeUnloadDisabler) 

ようなものになるだろうようにするに

答えて

0

- それはユーザーにとって本当に迷惑になることがあります。

関連する問題