2011-04-21 80 views
0

交通這是我必須做的:提琴手沒有捕獲到來自Chrome的

  1. 在打開IE/Chrome瀏覽器/ Firefox瀏覽器的URL。
  2. 做一些UI用戶操作(點擊/提交)。
  3. 記錄對特定http調用的http請求。

這裏是我做的:控制檯應用程序+硒RC打開url &做用戶操作+ Fiddler Core來捕獲該HTTP流量。

我的代碼在我運行FirefoxIE時工作正常,但不知道爲什麼Fiddler Core在Chrome上運行時無法捕獲任何http通信。

 ISelenium selenium = new DefaultSelenium("localhost", 4444, "*googlechrome", "http://money.msn.com/"); 
     selenium.Start(); 
     selenium.Open("/"); 
     selenium.WaitForPageToLoad("30000"); 

另一種野趣的事情,如果我不使用Process類,那麼我可以看到提琴手核心捕捉HTTP請求使用Selenium RC &打開Chrome瀏覽器。但我需要一個UI自動化工具來執行用戶操作。

任何幫助將大大appriciated。

謝謝。

回答

1

我希望我不會誤解這個問題 - 我認爲localhost流量是無法捕獲的東西。

本地主機流量通過本地環回接口(一個「虛擬」接口,可以更有效地路由本地流量)進行路由,並且永遠不會到達網卡。大多數數據包捕獲工具捕獲網絡設備驅動程序層上的數據包,因此只捕獲實際經過物理網絡設備的數據包。

+1

你能解釋一下爲什麼當我使用IE和FF時,它會起作用嗎? – 2011-04-21 06:29:05

+1

您可以自動執行IE和FF並執行相同的HTTP請求並可以捕獲流量?如果是這種情況,那麼本地主機流量不是問題。 – BertNase 2011-04-21 06:33:07

+1

是的,我爲FF&IE&Fiddler Core運行相同的自動化,可以捕獲流量。 – 2011-04-21 06:39:34

0

無論如何,使用ipv4.fiddler而不是本地主機來確保fiddler能夠捕獲流量。

對於IE,如果您使用的是IE9,則它已被更改爲允許代理連接到本地主機。看來FF也有能力做到這一點。檢查此網址:

提琴手和IE9候選發佈版 http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx

* IE9 RC引入了能力,代理一個VLAN。爲此,只需在代理旁路列表中包含標記< -loopback>(發音爲「minus-loopback」)即可。當WinINET在旁路列表中遇到此標記時,它將從繞過代理的主機列表中刪除環回地址(localhost,127.0.0.1)。捕獲流量時,Fiddler 2.3及以上版本會自動設置此選項。

FiddlerHook附加組件自動爲Firefox設置此選項的等效版本;對於Opera,您可以手動從代理旁路列表中刪除環回地址。*

1

我使用以下方式通過代理,它正在爲我工​​作。

ChromeOptions options = new ChromeOptions(); 
options.AddArgument(string.Format("--proxy-server=http={0}:{1};https={0}:{1}", proxyHost, port)); 
driver = new ChromeDriver(options);