量角器 - 在哪里使用browser.waitForAngular() [英] Protractor - Where to use browser.waitForAngular()
问题描述
我使用protractor为angular.js app编写了一些测试。我正在使用页面对象
设计模式,我有一些方法可以通过单击链接和按钮导航到其他页面。不久之后我打电话给 browser.waitForAngular()
。
I have some tests written using protractor for angular.js app. I am using Page Objects
design pattern and there i have some methods that navigate to other pages by clicking on links and buttons. and soon after that i am calling browser.waitForAngular()
.
Page Object
module.exports = function () {
this.companyNameLink = element(by.id('viewCompany'));
this.newMeetingButton = element(by.id('newMeetingButton'));
this.createNewGeneralMeeting = function () {
this.newMeetingButton.click();
browser.waitForAngular();
};
this.goToCompanyPage = function () {
this.companyNameLink.click();
browser.waitForAngular();
};
};
在某些规格文件中我使用此页面对象..
And in some spec file i use this page object like this..
var DashboardPage = require('../dashboardPageObject.js');
dashboardPage = new DashboardPage();
...
dashboardPage.goToCompanyPage();
但问题是有时我得到的角度无法找到窗口
错误,我的测试失败。大多数时候测试运行。这个问题是随机的。我的问题是,如果我从页面对象方法中删除 browser.waitForAngular()
并在我按此方法调用之后调用它...
But the problem is sometimes i get the angular could not be found on the window
error and my tests fail. Most of the time the tests run. This issue is random. My question is that should i remove the browser.waitForAngular()
from the page object method and call it after i make the method call like this...
修改后的页面对象
...
this.goToCompanyPage = function () {
this.companyNameLink.click();
};
...
规格文件
dashboardPage.goToCompanyPage();
browser.waitForAngular();
正在调用 browser.waitForAngular()
导致问题?我应该在哪里调用 waitForAngular
有没有关于如何使用它的最佳做法?
Is calling browser.waitForAngular()
causing the issue? Where should i call waitForAngular
is there any best practice on how to use this?
推荐答案
来自量角器的文档:
指示webdriver等到Angular完成呈现并且在继续之前没有未完成的$ http或$ timeout调用。请注意,Protractor会在每次WebDriver操作之前自动应用此命令。
Instruct webdriver to wait until Angular has finished rendering and has no outstanding $http or $timeout calls before continuing. Note that Protractor automatically applies this command before every WebDriver action.
您根本不应该调用此命令,我无法想到有效的情况你应该。
You shouldn't be calling this at all and I cannot think of a valid case where you should.
这篇关于量角器 - 在哪里使用browser.waitForAngular()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!