我使用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会停止捕获会话,但web浏览器不会停止,它仍在加载。
如何在获取所需内容后停止加载WebBrowser。
发布于 2016-09-15 02:04:49
使用WebBrowser.Stop()停止所有加载。
将取消所有挂起的导航并停止所有动态页面元素,如背景声音和动画。
编辑:此外,您还需要保存对正在创建的那些WebBrowser控件的引用,以便可以实际调用它们的Stop方法。你现在使用它们的方式非常奇怪,可能会导致问题(实际上它已经导致了问题)。
https://stackoverflow.com/questions/39496480
复制相似问题