我在 Protractor 中发送 HTTP get 请求时遇到问题。实际上,我需要在用户界面中执行某些操作后检查数据库中的数据。
如果我能够使用 JQuery 来完成它,那将非常有帮助,但我无法找到如何在 Protractor 中使用 JQuery 的方法。
需要帮忙 !!
实际上,我们确实尝试使用 Node.js 库,如下所示,但遇到了问题。
var http = require('http');
var json_data;
http.get('SiteUrl', function(response) {
var bodyString = '';
response.setEncoding('utf8');
response.on("data", function(chunk) {
bodyString += chunk;
});
response.on('end', function() {
json_data = bodyString;
console.log("1---->" + json_data);
});
}).on('error', function(e) {
console.log("There is an error in GET request");
});
console.log("2---->" + json_data);
经过调试,我们发现问题是Protractor没有等待HTTP请求完成而直接传递。我们正在得到2---->
首先在控制台中,然后1---->
.
我也用http模块(用于不同目的,用于重新初始化数据库)。
要让 Protractor 等待结束请求,请使用 Promise
var http = require('http');
var json_data;
http.get('SiteUrl', function(response) {
var bodyString = '';
response.setEncoding('utf8');
response.on("data", function(chunk) {
bodyString += chunk;
});
response.on('end', function() {
json_data = bodyString;
console.log("1---->"+json_data);
// All the processing and Angular code should be here
console.log("2---->"+json_data);
});
}).on('error', function(e) {
console.log("There is an error in GET request");
});
如果您不喜欢将所有数据处理放入响应.on('结束')回调,然后将回调作为一个单独的函数。
另外我不得不说 Protractor 并不是用来直接检查数据库的。它用于端到端测试。您应该更好地构建一个复杂的场景,在其中一个页面上写入一些数据,然后转到另一个页面并期望数据被更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)