1

Selenium2Library を使用したロボット フレームワーク テストは、ブラウザ ページがサーバーの応答を完全にロードするのを待ってスタックすることがあり、その結果、テストが無期限に停止することがあります。私が経験しているこれらのケースのほとんどで、ブラウザーはコンテンツの 99% を読み込んでおり、問題なく操作できます。ただし、ブラウザのロードが完全に停止するまで自動化は進みません。

自動化テストの実行を監視し、このブラウザー ハングの問題に遭遇したときに、ブラウザーの「停止」ボタンを手動で押すと、ブラウザーの読み込みが停止し、自動化テストが通常どおり再開されます。ブラウザがハングしたときにこのブラウザの停止を自動化したいと考えていますが、ブラウザが期待どおりにロードされたときにテストを遅くしたくありません。

Robot Framework内での使用方法を理解できれば、PythonでSelenium Webdriverコマンドが呼び出さset_page_load_timeout()れているように見えます。

私が検討している別のオプションは、javascript を実行してブラウザのロードを強制的に停止することです。次のようにします。

***Keywords***
Stop browser load
    Execute Javascript    return window.stop();

ただし、上記のようなコマンドでは、それをどのように実装し、ブラウザーの読み込みに時間がかかりすぎているかを認識する方法が問題になります。新しいページが読み込まれたり、リンクがクリックされたりするたびに不必要なタイムアウトを設定したくありません。テストの実行全体が遅くなるからです。

Robot Framework の Selenium2Library には、サーバー応答の実際のページ読み込み時間を設定できるこのようなものが既に組み込まれているので、ブラウザーがまだ読み込み状態にあることをテストで認識できますか? 私はSelenium2Library のドキュメントを確認してきましたが、これに直接関連するものは見つかりませんでした。

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

0

Robotframework Timeout を使用できます。設定またはキーワードにタイムアウトを設定できます。

キーワード:

*** Keywords ***
Timed Keyword
    [Documentation]    Set only the timeout value and not the custom message.
    [Timeout]    1 minute 42 seconds
    Do Something
    Do Something Else


設定:

*** Settings ***
Test Timeout    5 seconds
于 2016-10-11T09:50:11.313 に答える