2011-01-19 12 views
0

私はスクレーパーに取り組んでおり、ウェブブラウザーコントロールを使用しています。 これで、同じコントロールで1ページずつ1つずつナビゲートしています。webbrowserコントロールを使用したときの問題

しかし、私はこれを行うと、最初のページが完全に読み込まれる前にブラウザが別のページの読み込みを開始することがあります。時にはすべての実行を停止し、URLは進行中です。

私はwebBrowser1_DocumentCompletedイベントを使用してドキュメントを処理していますが、ドキュメントが複数回読み込まれていることがあります。

私のWebブラウザが忙しく働いているのか、閲覧しているのかを確認できる解決策があります。

+0

どのWebブラウザが制御しますか? Windowsフォーム? WPF? –

答えて

4

ページがフレームを使用している場合、ドキュメントが複数回完成していることに気付きました。
読み込まれたページのURLは、WebBrowser1_DocumentCompletedイベント引数から取得できます。

それは複数のフレームがあります、あなたはWebBrowser1.URLでWebBrowser1_DocumentCompletedのURLを比較することができた場合は、ある場合

ので

if(e.URL == webBrowser1.url) { 
    // The main page is done loading 
} 

それとも、

WebBrowser1.ReadyState == WebBrowserReadyState.Complete 

カップルをチェックしてみてください私はWinFormsのWebブラウザコントロールで見つけたgotchasは

アクセス権のあるDOMは、AJAXを介して変更が行われたときには更新されません。

新しいウィンドウが作成されたときにそれを検出してタブに入れる特別な作業をしない限り(必要な場合は、リンクを送信することができる記事がいくつかあります) 新しいページが開きますウィンドウは新しいプロセスで開始されるので、それらを掻き取る能力がなくなり、セッションが緩くなるので、Webページにログインすると、新しいウィンドウにログアウトされます。

+0

ありがとうございましたjamiegs thatz私が探していたもの。 –

関連する問題