2012-03-08 93 views
1

我在使用Selenium,并且希望捕获页面请求期间发送的所有Cookie数据包。我遇到了Fiddler核心和其他一些衍生物,但似乎无法找到任何有效的例子。一直在这方面进行了近10个小时没有进展,所以任何建议将不胜感激。以C#捕获网络流量

+0

您未能识别您的实际问题。 FiddlerCore附带一个示例应用程序,它将捕获所有HTTP标头,包括Cookie和Set-Cookie。 – EricLaw 2012-03-12 02:40:45

回答

4

BrowserMob Proxy是(报价):

免费的实用工具,帮助Web开发人员观看和他们的Web应用程序处理网络流量

我共同写了一个.NET库使用该代理很容易。代码在GitHub here上,我已经多了一些关于它的内容,例如代码here。因此,通过这两个组件和Selenium,希望您可以获得所需的信息。

信息以HAR格式提供,您可以在这里查看here的详细信息。基本上,对于请求/响应,您可以检索网络中发生的所有信息,cookies,时间等。

希望这是您以后的事情。

例如通过每个请求cookie遍历每个HAR日志条目的基本示例:

foreach(var entry in harData.Log.Entries) 
{ 
    foreach (var cookie in entry.Request.Cookies) 
    { 
     string name = cookie.Name; 
     string value = cookie.Value; 

     // Do something exciting....or just write the values to Console :) 
     Console.Write("Cookie name={0}, value={1}, name, value); 
    } 
} 
+0

感谢您的回复!在过去的30分钟左右,一直在使用Browser-Mob代理。使用以下示例:http://www.adathedev.co.uk/2012_02_01_archive.html我不知道如何继续:HarResult harData = client.GetHar(); – stats101 2012-03-08 21:30:01

+0

您应该能够深入查看对象以从请求和响应(harData.Log.Entries []。Request.Cookies []/Response.Cookies []) – AdaTheDev 2012-03-08 21:36:31

+0

中找到cookie。如果可能的话,我将需要更多的细分方法(对C#不太好)。 我创建了一个var变量:var ent = harData.Log.Entries; 现在我需要以某种方式得到cookie的entires。 此外,饼干fild(通过调试)中的值似乎都显示:Cookies = {AutomatedTester.BrowserMob.HAR.Cookie [0]} – stats101 2012-03-08 21:47:33