【问题标题】:C# - Why does BrowserMob.GetHar() only return 1 entry?C# - 为什么 BrowserMob.GetHar() 只返回 1 个条目?
【发布时间】:2019-12-21 06:39:39
【问题描述】:

我正在编写一些简单的 C# 代码来尝试从 Chrome 浏览器自动获取 HAR 文件。我正在使用 browser-mob-proxy 并且有一个函数:GetHar() 它应该返回一些不同的 URL 条目、请求和响应时间等。但是,它总是只返回一个条目,这是我的原始 URL我否定:www.google.com

我尝试使用 dr.Navigate().Refresh() 来确保页面已重新加载,因此 chrome DevTool Network 部分有一些活动。

        server.Start();
        Thread.Sleep(1000);
        Client client = server.CreateProxy();
        client.NewHar("google");
        var chromeOptions = new ChromeOptions();
        var seleniumProxy = new Proxy { HttpProxy = client.SeleniumProxy };
        chromeOptions.Proxy = seleniumProxy;
        var dr = new ChromeDriver(chromeOptions);       

        dr.Navigate().GoToUrl("http://www.google.com");
        dr.FindElementByClassName("gb_e").Click();

        Thread.Sleep(3500);
        dr.Navigate().Refresh();


        // Get the performance stats
        HarResult harData = client.GetHar();
        Log log = harData.Log;
        Entry[] entries = log.Entries;

        foreach (var e in entries)
        {
            Request request = e.Request;
            Response response = e.Response;
            var url = request.Url;
            var time = e.Time;
            var status = response.Status;
            var testStr = "Url: " + url + " - Time: " + time + " Response: " + status;
        }

我预计 GetHar() 函数将返回更多条目,而不是仅返回 1 个。

【问题讨论】:

  • 看过例子here?
  • 你是如何创建服务器的?我一直在寻找 C# 版本的 browsermob,但找不到任何东西。提前致谢

标签: c# asp.net selenium-webdriver browsermob-proxy har


【解决方案1】:

不知道为什么,但问题已通过添加 SSL 代理解决:

var seleniumProxy = new Proxy { HttpProxy = client.SeleniumProxy , SslProxy = client.SeleniumProxy };

【讨论】:

  • 服务器端和客户端用什么?我无法让它们被识别,而我可以使用 Microsoft 库的一种方法是安装大量东西并且不支持 Stop() 方法,因此可能链接错误的库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多