我是新的量角器和角度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);
但是在第一张图片显示在画布上之前它会返回。
答案 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