BrowserMob Proxy - 远程服务器返回错误:(404)Not Found

时间:2015-01-05 12:37:06

标签: c# selenium selenium-webdriver browsermob

我正在尝试将BrowserMob ProxySelenium一起用于C#。

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

第三行失败了。

有关如何使其正常工作的任何建议吗?

3 个答案:

答案 0 :(得分:0)

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

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

希望有所帮助!

答案 1 :(得分:0)

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

file

答案 2 :(得分:0)

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