Fiddler不会从Chrome获取流量

时间:2011-04-21 06:21:17

标签: http selenium selenium-rc fiddler

以下是我必须做的事情:

  1. 在IE / Chrome / Firefox浏览器中打开网址。
  2. 执行一些UI用户操作(单击/提交)。
  3. 记录特定http呼叫的http请求。
  4. 这是我做的:控制台应用程序+ selenium RC打开url&做用户操作+ Fiddler Core来捕获那个http流量。

    当我在Firefox和Firefox中运行它时,我的代码工作正常IE,但不知道为什么Fiddler Core在针对Chrome运行时无法捕获任何http流量。

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

    另一个有趣的事情,如果我不使用Selenium RC&使用Process类打开Chrome然后我可以看到fiddler核心捕获该http请求。但我需要一个UI自动化工具来执行用户操作。

    任何帮助都会受到极大关注。

    感谢。

3 个答案:

答案 0 :(得分:1)

我希望我不会误解这个问题 - 我认为localhost流量是无法捕获的东西。

localhost流量通过本地环回接口(一种“虚拟”接口,可以更有效地路由本地流量)进行路由,并且永远不会到达网卡。大多数数据包捕获工具捕获网络设备驱动程序层上的数据包,因此只捕获实际通过物理网络设备的数据包。

答案 1 :(得分:1)

我使用以下方式传递代理,它对我有效。

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

答案 2 :(得分:0)

无论如何,使用ipv4.fiddler而不是localhost来确保fiddler能够捕获流量。

对于IE,如果您使用的是IE9,则它已被更改为允许代理连接到localhost。似乎FF也能够做到这一点。检查此网址:

Fiddler和IE9候选版本 http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx

* IE9 RC引入了代理环回流量的能力。为此,只需包含令牌< -loopback> (在代理绕过列表中发音为“minus-loopback”)。当WinINET在绕过列表中遇到此令牌时,它将从绕过代理的主机列表中删除环回地址(localhost,127.0.0.1)。 Fiddler 2.3及以上版本在捕获流量时自动设置此选项。

FiddlerHook附加组件自动为Firefox设置此选项的等效版本;对于Opera,您可以从代理旁路列表中手动删除环回地址。*

相关问题