2012-03-08 85 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