有没有办法监视浏览器使用Protractor / Webdriver发出的$ http / AJAX请求?
有没有办法让$ http-backend返回发送给它的请求?
答案 0 :(得分:1)
听起来这可能就是你所需要的:
NodeJS bindings for browsermob-proxy to programmatically generate HAR files
基本上,您需要运行代理服务器,通过代理发送Selenium流量,然后通过一种方式(JavaScript绑定,REST API)获取包含所有HTTP请求和响应的完整详细信息的可查询HAR文件从您的网络请求生成。
修改强>
HAR文件只是一个JSON存档,因此从JavaScript中检查和查询它应该不会太困难。以下是一些可能有用的Node库:
答案 1 :(得分:0)
我使用了HTTP拦截器。起初很难让它工作,三种不同的语法都使元素定位器失败,selenium立即退出。但接下来尝试了它。它是:它将来自HTTP请求的数据放入$rootScope
变量,然后可以使用.evaluate()
var e2eInterceptors = function() {
return angular.module('e2eInterceptors', ['yetiWonderland']).factory('loginInterceptor', function($rootScope) {
return {
request: function(config) {
if (config.method === 'PUT'){
$rootScope.testData = config.data;
console.log("ROOTSCOPE!", $rootScope.testData);
}
configIntercept = config
return config
},
response: function(response) {
console.log("RESPONSE!");
return response;
},
};
}).config(function($httpProvider) {
return $httpProvider.interceptors.push('loginInterceptor');
});
};
browser.addMockModule('e2eInterceptors', e2eInterceptors);