量角器:使用canvas元素 - ng-if / ng-show

时间:2016-12-26 19:26:31

标签: javascript angularjs testing protractor

我是新的量角器和角度JS页面。

对于我的end2end测试,如果我的画布至少收到一张图像,我需要验证 (这个画布中有一些websocket.io可以填充一些图像。)

现在我应该验证画布是否开始接收该图像。

我的html页面:

<div class="terminal-screenshots" ng-class="{ online: isConnected() && vm.hasImage }">
        <canvas ng-show="isConnected() && vm.hasImage" style="width: 100%;" id="remoteTerminalCanvas"></canvas>
        <span ng-if="!isConnected() || !vm.hasImage">
          {{ vm.display.message | translate }}
        </span>
</div>
	  

这是我的期望:

expect(element(by.id('remoteTerminalCanvas')).isDisplayed()).toBe(true);

但是在第一张图片显示在画布上之前它会返回。

1 个答案:

答案 0 :(得分:2)

正如@finspin所指出的那样,您的B元素可能始终可见,但同时具有0高度。您可以通过browser.wait()getSize()等待canvas值大于零:

height

另一个选择是等待var canvas = element(by.id('remoteTerminalCanvas')); browser.wait(function () { return canvas.getSize().then(function (size) { return size.height > 0; }); }, 5000); 通过browser.wait()evaluate()变为真:

hasImage