当前位置: 首页 > 面试题库 >

量角器-在哪里使用browser.waitForAngular()

戎兴言
2023-03-14
问题内容

我为angular.js应用程序使用量角器编写了一些测试。我正在使用Page Objects设计模式,并且有一些方法可以通过单击链接和按钮来导航到其他页面。不久之后我打电话给我browser.waitForAngular()

页面对象

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();
    };
};

在某些规范文件中,我使用此页面对象,例如:

var DashboardPage = require('../dashboardPageObject.js');
dashboardPage = new DashboardPage();

...

dashboardPage.goToCompanyPage();

但是问题是有时我会收到angular could not be found on the window错误,并且我的测试失败。大多数情况下,测试会运行。这个问题是随机的。我的问题是我应该browser.waitForAngular()从页面对象方法中删除并在我像这样进行方法调用后调用它…

修改页面对象

...
this.goToCompanyPage = function () {
    this.companyNameLink.click();
};
...

规格文件

dashboardPage.goToCompanyPage();
browser.waitForAngular();

是打电话browser.waitForAngular()引起问题吗?我应该在哪里打电话,waitForAngular有关如何使用此功能的最佳做法?


问题答案:

从量角器的文档中:

指示webdriver等到Angular完成渲染并且没有未完成的$ http或$
timeout调用后再继续。请注意,量角器在每个WebDriver操作之前自动应用此命令。

您根本不应该打电话给我,我想不出您应该使用的有效案例。



 类似资料:
  • 问题内容: 当我在循环中使用Protractor时,循环索引()不是我期望的。 症状: 失败:索引超出范围。尝试访问索引为’x’的元素,但是只有’x’个元素 要么 索引是静态的,并且始终等于最后一个值 我的密码 例如: 要么 要么 问题答案: 发生这种情况的原因是因为量角器使用了诺言。 阅读https://github.com/angular/protractor/blob/master/docs

  • 问题内容: 我看到了一些使用 Promise 访问FB Graph API 的Facebook登录服务的示例。 范例1 : 以及获得响应时使用的服务 范例2 : JSFiddle 问题是: 上面的示例有什么 区别 ? 使用 $ q 服务的 原因 和 案例 是什么? __ 以及它如何 运作 ? 问题答案: 这并不是您问题的完整答案,但是希望当您尝试阅读服务文档时,这将对您和其他人有所帮助。我花了一段

  • 我试图用量角器模拟我网站上的用户故事。 用户必须输入使用自动完成的输入。在现实生活中,用户必须在输入中键入一些文本,然后用鼠标或更自然的向下键选择正确的命题。 问题是我似乎不能用量角器来模拟。element.sendKeys不允许您这样做。我已经尝试了十几种不同的方式,它最多只能产生不可预测的结果。 因此,我想直接根据我的输入操作ng模型。有没有办法从量角器访问元素的作用域并在其上调用函数/设置属

  • 问题内容: 被存储在客户端或服务器上的变量? 问题答案: 变量存储的位置由PHP的配置确定。通常这是在Linux / Unix系统上。如果无法100%确定,请使用此功能查看您的特定设置,方法是在您域的中创建具有以下内容的文件:

  • 问题内容: 我知道我可以读取使用这三个术语,但任何一个可以请指引我正确的时候使用从数据库中的数据,并? 问题答案: 何时使用ExecuteScalar :使用它来执行通常具有标量返回值的任何用户定义的函数或存储过程。即仅返回一个值。但是,它也可以与其他查询或存储过程一起使用,但是在这种情况下,它 仅 返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。 何时使用ExecuteReader :

  • 我已经将ViewPager和number of Fragment实现为子级,这里每个子级都覆盖自己的。 在我的应用程序中,导航行为是随机的,不是每次都有顺序。因为页面查看器执行缓存来加载额外的子级,这就是我的问题所在。我不确定何时应该初始化/释放子类成员。 需要你们的建议,在这种情况下使用PageViwer是否更好,或者我应该为每个组件使用传统的活动流。