【问题标题】:C# WebBrowser in loop and FiddlercoreC# WebBrowser 循环和 Fiddlercore
【发布时间】:2016-09-14 17:34:29
【问题描述】:

我使用 Fiddlercore 在一个循环中同时捕获多个 url。

例子:

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 停止捕获会话,但网络浏览器并没有停止,它仍在加载。

在获得所需内容后如何阻止 WebBrowser 加载。

【问题讨论】:

    标签: c# webbrowser-control fiddlercore


    【解决方案1】:

    使用WebBrowser.Stop() 停止所有加载。

    取消任何待定导航并停止任何动态页面元素,例如背景声音和动画。

    编辑:另外,您需要保存对您正在创建的那些 WebBrowser 控件的引用,以便您可以真正为它们调用 Stop 方法。您现在使用它们的方式很奇怪,可能会导致问题(实际上它已经导致问题)。

    【讨论】:

    • 当我这样声明时如何使用 WebBrowser.Stop():new Webbrowser().Navigate(url);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多