Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从WebDriver或RemoteWebDriver使用PhantomJS和GhostDriver进行网络监控_Java_Automation_Webdriver_Phantomjs_Ghostdriver - Fatal编程技术网

Java 从WebDriver或RemoteWebDriver使用PhantomJS和GhostDriver进行网络监控

Java 从WebDriver或RemoteWebDriver使用PhantomJS和GhostDriver进行网络监控,java,automation,webdriver,phantomjs,ghostdriver,Java,Automation,Webdriver,Phantomjs,Ghostdriver,我希望通过WebDriver/RemoteWebDriver使用PhantomJS来监视和测试整个页面加载过程中的网络活动。我已经做到了PhantomJS可以做Chrome或Firefox可以做的一切,加载页面、访问DOM等等 然而,我不知道从这里可以走到哪里才能像我在JavaScript PhantomJS示例中看到的那样访问请求和响应HTTP头。GhostDriver Javadocs似乎没有提及任何相关内容 有人这样做过吗?WebDriver API或状态代码。PhantomJS可能允许您

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

然而,我不知道从这里可以走到哪里才能像我在JavaScript PhantomJS示例中看到的那样访问请求和响应HTTP头。GhostDriver Javadocs似乎没有提及任何相关内容

有人这样做过吗?

WebDriver API或状态代码。PhantomJS可能允许您获取它们,但WebDriverAPI不会公开它们。这在项目的一些用户中是一个很好的选择,但它不会改变,而且这个决定必须如此。通过巧妙地使用WebDriver的
executeScript()
方法,您可能能够操纵PhantomJS检索信息的能力(如果允许的话),但我真的不知道这是否有效。

WebDriver API或状态码。PhantomJS可能允许您获取它们,但WebDriverAPI不会公开它们。这在项目的一些用户中是一个很好的选择,但它不会改变,而且这个决定必须如此。通过巧妙地使用WebDriver的
executeScript()
方法,您可能能够操纵PhantomJS检索信息的能力(如果允许的话),但我真的不知道这是否有效。

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

功能包括(摘自链接):

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

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

功能包括(摘自链接):

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

基于,我能够在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

还有一些关于.

的附加讨论,基于,我能够在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

关于这个问题还有一些额外的讨论