2016-09-14 32 views
0

我使用Fiddlercore在一個循環內同時捕獲多個url。C#WebBrowser循環和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()停止所有加載。

取消任何掛起的導航並停止任何動態頁面元素,例如背景聲音和動畫。

編輯:此外,您還需要保存到正在創建的web瀏覽器控件的引用,這樣就可以實際調用該方法Stop他們。你現在使用它們的方式很奇怪,可能會導致問題(實際上它已經導致了問題)。

+0

我如何使用WebBrowser.Stop()當我聲明如下:new Webbrowser()。Navigate(url); –