Selenium webdriver 使用量角器/Webdriver查看AJAX/HTTP调用?是否已将$HttpBackend返回数据发送给它?

Selenium webdriver 使用量角器/Webdriver查看AJAX/HTTP调用?是否已将$HttpBackend返回数据发送给它?,selenium-webdriver,webdriver,jasmine,protractor,Selenium Webdriver,Webdriver,Jasmine,Protractor,有没有一种方法可以监视浏览器使用Gragotor/Webdriver发出的$http/AJAX请求 有没有办法让$http后端返回发送给它的请求?听起来这可能是您需要的: 本质上,您需要一个运行的代理服务器、通过代理发送的Selenium通信量,以及一种获取可查询文件的方法(JavaScript绑定、REST API),该文件包含所有HTTP请求的完整细节以及从web请求生成的响应 编辑: HAR文件只是一个JSON归档文件,所以从JavaScript检查和查询它应该不会太困难。以下是一些可能

有没有一种方法可以监视浏览器使用Gragotor/Webdriver发出的$http/AJAX请求


有没有办法让$http后端返回发送给它的请求?

听起来这可能是您需要的:

本质上,您需要一个运行的代理服务器、通过代理发送的Selenium通信量,以及一种获取可查询文件的方法(JavaScript绑定、REST API),该文件包含所有HTTP请求的完整细节以及从web请求生成的响应

编辑:

HAR文件只是一个JSON归档文件,所以从JavaScript检查和查询它应该不会太困难。以下是一些可能有帮助的节点库:


我使用了HTTP拦截器。起初,让它工作起来很麻烦,三种不同的语法都导致元素定位器失败,selenium立即退出。但下一次尝试成功了。它是这样的:它将来自HTTP请求的数据放入一个
$rootScope
变量中,然后可以使用
.evaluate()

var e2eInterceptors=函数(){
返回角度.module('e2eInterceptors',['yetiWonderland']).factory('loginInterceptor',function($rootScope){
返回{
请求:函数(配置){
if(config.method==='PUT'){
$rootScope.testData=config.data;
log(“ROOTSCOPE!”,$ROOTSCOPE.testData);
}
configIntercept=config
返回配置
},
响应:功能(响应){
log(“响应!”);
返回响应;
},
};
}).config(函数($httpProvider){
返回$httpProvider.interceptors.push('loginInterceptor');
});
};

addMockModule('e2eInterceptors',e2eInterceptors)Hmmm有趣的建议。我可以从测试中查询该文件吗?是否可以让express发送一个我的量角器测试将接收到的响应?这看起来很复杂。如果必须的话,我可能会求助于此,但一个更简单的解决方案会更可取