【问题标题】:Using PhantomJS and GhostDriver for network monitoring from WebDriver or RemoteWebDriver使用 PhantomJS 和 GhostDriver 从 WebDriver 或 RemoteWebDriver 进行网络监控
【发布时间】:2013-06-15 05:51:58
【问题描述】:

我希望通过 WebDriver/RemoteWebDriver 使用 PhantomJS 来监控和测试整个页面加载过程中的网络活动。我已经做到了 PhantomJS 可以做 Chrome 或 Firefox 可以做的所有事情——加载页面、访问 DOM 等等。

但是,我不确定从这里去哪里才能像我在 JavaScript PhantomJS 示例中看到的那样访问请求和响应 HTTP 标头。 GhostDriver Javadocs 似乎没有提及它。

有人做过吗?

【问题讨论】:

    标签: java automation webdriver phantomjs ghostdriver


    【解决方案1】:

    WebDriver API doesn't expose HTTP request and response headers 或状态码。 PhantomJS 可能允许您获取它们,但 WebDriver API 不会公开它们。这是该项目的一些用户中的point of some contention,但它不会改变,而这个决定有good and sufficient reasons。您或许可以通过巧妙地使用 WebDriver 的 executeScript() 方法来操纵 PhantomJS 检索该信息的能力(如果它允许的话),但我真的不知道这是否可行。

    【讨论】:

      【解决方案2】:

      尝试使用Jaunt API。它是无头的,支持检索响应头。

      功能包括(取自链接):

      HTML、XHTML、XML 解析。 协议:HTTP、HTTPS、基本身份验证。 通过字段标签/名称/序列填写表格。 自动形式排列。 文件下载/上传。保存完整的网页(图片、js、css、 等等)。表数据提取。 DOM 导航、搜索和搜索链。 启用正则表达式的查询。 HTTP 标头/cookie 操作。 HTTP/HTTPS 代理支持。 可定制的缓存和内容处理程序。分页发现。 100% Java(无依赖)

      【讨论】:

        【解决方案3】:

        基于this answer,我能够让它在 Java 和 Selenium 3.4 中运行。

        在你的项目中创建一个资源文件;叫它netlog.js:

        var page = this;
        page.onResourceRequested = function(request) {
          console.log('Request ' + JSON.stringify(request, undefined, 4));
        };
        page.onResourceReceived = function(response) {
          console.log('Receive ' + JSON.stringify(response, undefined, 4));
        };
        

        然后从您的 Java 代码中,启用这样的日志记录:

        import org.apache.commons.io.IOUtils;
        String script = IOUtils.toString(getClass().getResourceAsStream("/netlog.js"));
        ((PhantomJSDriver) driver).executePhantomJS(script);
        

        所有的日志都将转到 stderr。

        PhantomJS site 上有一些额外的讨论。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-08-13
          • 1970-01-01
          • 2014-12-23
          • 1970-01-01
          • 2014-06-01
          • 1970-01-01
          • 2010-10-01
          相关资源
          最近更新 更多