在Protractor测试中等待服务器响应(并检查值)

时间:2015-09-25 01:06:05

标签: angularjs server protractor angularjs-e2e e2e-testing

我的网站中有一个页面向服务器发出请求,然后使用结果填充表格。

我如何为此编写e2e测试?我无法解决如何等待服务器响应,以及如何从响应中获取数据,因此我可以根据表内容进行检查。

以下是我的Angular控制器的简化示例:

angular.module("myApp").controller("myCtrl", function(MyService) {

   MyService.getData()
        .then(function (response) {
            $scope.data = response;
        });
});

然后html页面循环遍历$ scope.data中的项目以填充表格。

感谢您的帮助!

1 个答案:

答案 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>