在使用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>
但它还没有奏效。请帮忙......!
答案 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")