量角器如何检测md-progress-circular并等待它关闭

时间:2016-12-20 04:58:10

标签: protractor

我的网页上有一个md-progress-circular组件,每次点击都会显示动画,因为大多数调用都是从后端获取数据,我的脚本失败,因为每个调用的响应时间不同而圆形加载器在屏幕上停留随机时间,脚本失败并显示以下错误

Failed: unknown error: Element is not clickable at point (1442, 472). Other element would receive the click: 
<div id="blockUiBackdrop" ng-show="blockingUI" aria-hidden="false" class="ng-animate ng-hide-animate ng-hide-remove ng-hide-remove-active" data-ng-animate="2">...</div>
      (Session info: chrome=55.0.2883.87)
  (Driver info: chromedriver=2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf),platform=Windows NT 10.0.14393 x86_64)

1 个答案:

答案 0 :(得分:1)

可能取决于您网页的md-progress-circular组件的模式

案例1:确定 - 这是您知道背景操作的状态,并且有一个value属性可以让您知道操作何时完成

示例:

<md-progress-circular md-mode="determinate" value="34" aria-valuemin="0" aria-valuemax="100" role="progressbar" class="ng-isolate-scope" aria-valuenow="34" style="width: 50px; height: 50px;"></md-progress-circular>

您可以在此处添加browser.wait()以检查属性值是否等于aria-valuemax

案例2:不确定 - 这是您不知道幕后发生的事情,您需要检查元素的隐身性

示例:

<md-progress-circular ng-disabled="!vm.activated" class="md-hue-2 ng-isolate-scope _md-progress-circular-disabled" md-diameter="20px" aria-valuemin="0" aria-valuemax="100" role="progressbar" md-mode="indeterminate" aria-disabled="true" style="width: 20px; height: 20px;" disabled="disabled"> </md-progress-circular>

在这种情况下,有两个选项

1.识别确定组件可见性的ng-model值,如本例所示 - vm.activated并访问范围并等待值更改

2. browser.wait() invisibilityOf()组件上的md-progress-circular