我有一个按钮,单击后会在 Angular 中发出 AJAX 调用$promise
格式。登录成功后会出现$scope
变量被更改并且元素如下所示:
<section id="logged-in-section" ng-if="auth.user !== null">
// Section to display if logged in
</section>
被展示。我目前正在使用以下内容测试上述内容:
loginButton.click();
browser.sleep(2000);
expect($("#logged-in-section").isDisplayed()).toBeTruthy();
browser.sleep(2000)
在 Protractor 检查是否存在之前,使浏览器空闲两秒钟logged-in-section
已显示。如果我拿出来browser.sleep(2000)
,测试失败,因为点击登录按钮和从服务器返回的响应之间存在延迟。
将登录按钮链接到的语法是什么expect
声明,以便 Protractor 仅检查#logged-in-section
之后$promise
被退回?
你可以这样做:
loginButton.click().then(function(){
browser.waitForAngular().then(function (){ //this should wait for the angular digest process to finish
expect($("#logged-in-section").isDisplayed()).toBeTruthy();
})
});
或者这应该可以:
loginButton.click().then(function(){
browser.wait(element(by.id("logged-in-section")).isDisplayed);
expect($("#logged-in-section").isDisplayed()).toBeTruthy();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)