【问题标题】:Browsermob proxy stops capturing on url change?Browsermob 代理停止捕获 url 更改?
【发布时间】:2016-09-10 08:34:00
【问题描述】:

我正在使用 browsermob 代理来通过 webdriver(主要是 chrome)捕获流量。 这是我遇到的问题:只要我使用单页一切都可以,但是当 URL 更改时(由于导航到其他页面或重定向),代理不再捕获任何事件(我无法看到那些HAR 文件中的事件)

这是我如何启动代理:

BrowserMobProxyServer proxy = new BrowserMobProxyServer();
        try {
            proxy.start(Integer.valueOf(proxyPool.borrowProxyPort()), InetAddress.getLocalHost());
        } catch (NumberFormatException | UnknownHostException e) {
            Logger.error(e.getLocalizedMessage());
        }
        proxy.waitForQuiescence(30, 3, TimeUnit.SECONDS);
        proxy.setHarCaptureTypes(CaptureType.REQUEST_HEADERS);
        Logger.info("Proxy start status: " + proxy.isStarted());

这就是我得到 har 的方式:

proxy.waitForQuiescence(10, 10, TimeUnit.SECONDS);
return proxy.getHar();

我是否需要以某种方式处理 URL 更改或我在这里丢失 smthn 的情况?

【问题讨论】:

  • 大家找到解决方案了吗?我有一个类似的问题,我需要捕获通过单击链接打开的新窗口发出的请求。
  • 很遗憾,没有

标签: selenium-webdriver proxy webdriver browsermob browsermob-proxy


【解决方案1】:

这就是我的工作原理!

BrowserMobProxyServer proxyBrowserMob = new BrowserMobProxyServer();
proxy.start();
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyBrowserMob)
    DesiredCapabilities caps = DesiredCapabilities.firefox();
 caps.setCapability("marionette", true);
    caps.setCapability(CapabilityType.PROXY, seleniumProxy);
RemoteWebDriver webDriver = new FirefoxDriver(caps);
proxyBrowserMob .enableHarCaptureTypes(CaptureType.REQUEST_CONTENT,CaptureType.REQUEST_HEADERS,CaptureType.REQUEST_COOKIES);
        proxyBrowserMob .newHar();

为了检索 HAR 文件,我遍历 HarEntry 以获取 HAR。

List<HarEntry> entries = browserMobProxy.getHar().getLog().getEntries();
    for (HarEntry entry : entries) {
   // get HarRequest
   /get HarResponse
     }

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2016-05-09
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多