如果使用包装器隐藏微调器,如何使用量角器处理微调器

时间:2016-03-29 10:27:48

标签: javascript angularjs selenium protractor e2e-testing

在使用Protractor为Angular应用程序编写测试期间,我遇到了很多与处理微调器相关的问题,其中一些我解决了,但我不知道如何测试由包装器隐藏的微调器,例如父母tag具有ng-if或ng-hide语句,并且spinner的高度和宽度大于0。 我试过用:

spinner.isDisplayed();
browser.wait(EC.visibilityOf(spinner), 5000); 

HTML示例(父标记可能不同):

 <div class="some purent div">
 <div class="spinner-loader small-loader ng-hide" ng-show="expression">  </div>
</div>

:::

<div class="container">
      <div class="spinner-loader spinner-dark" ng-if="if_statement"></div>
</div>

:::

<div ng-show='exp'>
...
 <div>
...
  <div class='spinner'></div>
 </div>
</div>

但它还没有奏效。请帮忙......!

2 个答案:

答案 0 :(得分:0)

请尝试以下代码。

element.all(by.model('model of your spinner')).each(function (eachElement, index)
{
     eachElement.click();
     browser.driver.sleep(500);
     element(by.css('Unique identifier of the Spinner value you are selecting')).click();
     browser.driver.sleep(500);
});

希望这会有所帮助。 :)

答案 1 :(得分:0)

根据您提供的html片段,您可以获得可见的微调器:

By.cssLocator(".spinner-loader:not(.ng-hide):not([ng-if]) .spinner")

并获得隐藏的微调器:

By.cssLocator(".spinner-loader.ng-hide .spinner, .spinner-loader[ng-if] .spinner")