我的网站中有一个页面向服务器发出请求,然后使用结果填充表格。
我如何为此编写e2e测试?我无法解决如何等待服务器响应,以及如何从响应中获取数据,因此我可以根据表内容进行检查。
以下是我的Angular控制器的简化示例:
angular.module("myApp").controller("myCtrl", function(MyService) {
MyService.getData()
.then(function (response) {
$scope.data = response;
});
});
然后html页面循环遍历$ scope.data中的项目以填充表格。
感谢您的帮助!
答案 0 :(得分:1)
通常,您不必担心这一点,因为protractor
知道角度准备好何时加载页面。换句话说,it syncs with Angular itself:
您不再需要为测试添加等待和睡眠。量角器可以自动执行测试中的下一步 网页完成待处理任务,因此您不必担心 等待您的测试和网页同步。
但在某些情况下,您需要通过browser.wait()
明确等待某些预期条件得到满足。例如,您可以等到特定元素出现:
var EC = protractor.ExpectedConditions;
var elm = element(by.css("#myid"));
browser.wait(EC.presenceOf(elm), 10000);
有一大堆built-in Expected Conditions,请查看。
在您的情况下,究竟要等待什么,取决于浏览器收到服务器响应时浏览器中发生的情况 - 可能是某些表出现,或者是否有其他表行添加到现有表等。< / p>