いくつかの経験のブラウザの経験散発的な自動化された10の安定性

最も困難な安定性を感じ、ブラウザの自動化プログラム。特に、ネットワーク内の無人の自動実行は、8時間、または長いを実行している優れた連続ノンストップではありません実現するために、簡単ではありません。多くの予期せぬ異常事態ので。以下の役に立つかを実行します。

あなたはVisual Studioでデバッグする場合1)、必要がありますデバッグ - 例外 - マネージドデバッグアシスタント - スローされダニのContextSwitchDeadLockは、半分に実行し、プロンプト、割り込みプログラムの実行の突然の出現を避けるために、削除しました。

あなたは、WebBrowserコントロールを使用している場合2)、ScriptErrorsSuppressedは、予期しないJSエラー、割り込みプログラムの実行を回避するために、trueに設定します。

3)セレンであれば、簡単に例外を投げることができるドライバを覚えて、それはとても異常でなく、トライキャッチで結合された場所のdriver.PageSourceに簡単で、一般的でない場合であっても、ドライバの場所を持っている人は、注意が船です。driver.Closeは()のtryキャッチを追加する必要があります。ネットワークの状態が悪い場合は、タイムアウトが発生しやすいですが、またライブキャッチをしようとします。

4)遅延に注意を払います。このようなIO操作として、JavaScriptを使用して開いている新しいページ中のセレンは、遅延を必要とします。タイマー面倒すぎる場合は、のThread.sleepを使用します。とにかく、そのインターフェイスをブロック自動無人実行の目的は、問題ではありません。

5)貧弱ネットワーク条件の場合を覚えて、任意のページには、異常の様々なことがあり、ページ全体が対象となりませんよう、ブラウザの空白のページ、半分の負荷、負荷に長い時間のために、常に終わらない。などように。ジャバスクリプト、WebBrowserコントロール、またはセレンの要素を撮影するとき、我々は最初の存在を検出しなければならないとだから、彼らは異常なことができないので、回避するためには、当たり前のことができません。

同時に、すべてのページ時間がかかり、すべてのページが完全に検出されロードされます。私のアプローチは、全体のページがロードされているがあると仮定した場合、要素があるかどうかを見つけることです。

6)あなたも、より多く発生する可能性があり、プロキシサーバーの問題を使用している場合。例えば、ヘッダはちょうどように、HttpRequestのを追加表示されることがあり、予期しないエラーページの様々なを取る、とすることはできません。ページを取るために、プロキシサーバーを使用する場合は、常に要素は、適した再試行メカニズムの追加存在している検出されなければなりません。

7)予期しないプロンプト、確認ウィンドウは非常に迷惑です。セレンは、使用される場合、適切な検出機構を付加することができます

8)基本原理は、すべての可能な例外がライブキャッチし、適切な再試行メカニズムを追加することです。適切な再試行の遅​​延を追加します。たとえば、ページが開かない、連続していないしてみてください、しかし、数秒は非常に良い結果で、再試行する遅延の後。

9)多くのテストを行ってください。たとえば、書籍のダウンロードプログラムを行い、あなたが行われている場合でも、12、ダースをダウンロードすることができるとは思いません。連続8時間または通常の操作、又はエラーの数百本、一般に考えられて通過することなく、ダウンロード。

おすすめ

転載: www.cnblogs.com/badnumber/p/12078540.html
おすすめ