【问题标题】:BrowserMob Proxy - The remote server returned an error: (404) Not FoundBrowserMob 代理 - 远程服务器返回错误:(404)未找到
【发布时间】:2015-01-05 12:37:05
【问题描述】:

我正在尝试在 C# 中使用 BrowserMob ProxySelenium

我在这里尝试过这个解决方案: http://www.adathedev.co.uk/2012/02/automating-web-performance-stats.html

我的代码如下所示:

Server server = new Server(@"path_to\\browsermob-proxy.bat");
server.Start();
Client client = server.CreateProxy();
client.NewHar("test");

var seleniumProxy = new Proxy { HttpProxy = client.SeleniumProxy };
var profile = new FirefoxProfile();

profile.SetProxyPreferences(seleniumProxy);
IWebDriver driver = new FirefoxDriver(profile);

当我运行测试时,我收到以下错误:

System.Net.WebException:远程服务器返回错误:(404) Not Found。

在第三行失败。

关于如何使它工作的任何建议?

【问题讨论】:

    标签: c# selenium selenium-webdriver browsermob


    【解决方案1】:

    如果您可以发布更详细的堆栈跟踪信息,以及您尝试连接的远程主机,那将会很有用。与此同时,您可以尝试以下几件事:

    • 检查您请求的地址。您似乎收到了 404 - 您可以通过没有代理的浏览器访问它吗?
    • 确保 browsermob-proxy.bat 安装在第 1 行的路径中(它真的位于名为“path_to”的工作目录的子目录中吗?)
    • 检查您在临时目录中的写入权限,在 Windows 上为 %TEMP% 或 %TMP%。 BMP 在那里写入临时文件。
    • 获取最新的源代码并构建 .bat 文件。说明位于底部的browsermob-proxy github page(在从源代码创建批处理文件下)。

    希望有帮助!

    【讨论】:

      【解决方案2】:

      这很可能是因为您的 Jetty 服务实际上并未运行,您是否从 BrowserMob 批处理文件中收到一条消息说它无法运行?就我而言,这是一种端口(默认设置为 8080)但我在该端口上监听的其他东西的情况。要解决此问题,您可以传递一个可选的端口号。

      var server = new Server(@"C:\path\to\bin\browsermob-proxy.bat", 9090);
      

      【讨论】:

        【解决方案3】:

        我在 python 上遇到了同样的问题。当我尝试获取 localhost:8080 的内容时,出现 404 错误。原来我的其他应用程序正在使用相同的 8080 端口。所以我发现 PID 在 cmd 中输入:netstat -o -n -a | findstr :8080。然后我用这个 PID 终止了进程,browsermob 给了我很好的 HAR。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-07
          • 2010-12-20
          • 1970-01-01
          • 2017-09-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多