0

我正在尝试在 C#中使用BrowserMob Proxywith 。Selenium

我在这里尝试过这个解决方案: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)未找到。

它在第三行失败。

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

4

3 回答 3

0

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

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

希望有帮助!

于 2015-01-06T03:16:36.880 回答
0

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

var server = new Server(@"C:\path\to\bin\browsermob-proxy.bat", 9090);
于 2016-07-02T13:28:29.807 回答
0

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

于 2020-07-05T19:34:25.093 回答