2016-09-14 13 views
0

私はFiddlercoreを使用してループ内で同時に複数のURLを取得します。C#WebBrowser inループとFiddlercore

例:

private void button1_Click(object sender, EventArgs e) 
{ 
    // I have 2 url 
    string arr = new string[]{ url1, url2 }; 
    foreach(var url in arr) 
    { 
     new Webbrowser().Navigate(url); 
    } 

    Fiddler.FiddlerApplication.AfterSessionComplete 
     += new Fiddler.SessionStateHandler(FiddlerApplication_AfterSessionComplete); 
    } 

    // I will catch 2 oSession contain same string "a/b/c" in 2 URL from 2 Webbrowser in loop 
    int Count = 0; 
    void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession) 
    { 
     if(oSession.fullUrl.contain("a/b/c")) 
     { 
      Count+= 1; 
      richtextbox1.AppendText("oSession.fullUrl" + "\n"); 
     } 

     if(Count == 2) 
     { 
      Count = 0; 
      StopFiddler(); 
     } 
    } 

void StopFiddler() 
{ 
    Fiddler.FiddlerApplication.AfterSessionComplete 
     -= new Fiddler.SessionStateHandler(FiddlerApplication_AfterSessionComplete); 
} 

これは動作しますが、私は問題を抱えています。 Fiddlercoreはキャプチャセッションを停止しますが、Webブラウザは停止せず、まだ読み込み中です。

私が必要なものを取得した後、WebBrowserのロードを停止する方法。

答えて

0

WebBrowser.Stop()を使用してすべての読み込みを停止します。

保留中のナビゲーションをキャンセルし、背景音やアニメーションなどの動的ページ要素をすべて停止します。

編集:はまた、あなたが実際に彼らのためにStopメソッドを呼び出すことができるように、あなたが作成しているこれらのWebBrowserコントロールへの参照を保存する必要があります。あなたが今それらを使用する方法は非常に奇妙であり、問​​題をもたらす可能性があります(実際にはすでに問題につながっています)。

+0

WebBrowser.Stop()は、次のように宣言するとどのように使用できますか?new Webbrowser()。Navigate(url); –