加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 量角器测试和UI路由器不等待解析

发布时间:2020-12-17 18:03:45 所属栏目:安全 来源:网络整理
导读:我们有一个使用UI路由器构建的应用程序,其中包含一些路由解析.我们试图对它运行一些量角器测试,但似乎默认的browser.get()不等待ui路由器完全解析 这是我们的简单测试 describe('coach pages',function() { beforeEach(function() { browser.get("/"); }); i
我们有一个使用UI路由器构建的应用程序,其中包含一些路由解析.我们试图对它运行一些量角器测试,但似乎默认的browser.get()不等待ui路由器完全解析

这是我们的简单测试

describe('coach pages',function() {

  beforeEach(function() {
    browser.get("/");
  });

  it('should have the right title',function() {
    expect(browser.getTitle()).toBe('The Title');
  });

  it('should have a heading',function() {
    expect(element(by.css('#test')).isPresent()).toBeTruthy();
  });

});

第一个通过,它找到页面标题,但标题不是

如果我们加上这个

browser.sleep(1000);

就在第二个期望它通过之前?

量角器是否应该等待结果默认完成?是与UI路由器的某种冲突?

值得补充的是,任何没有解决它的路线似乎都按预期等待它,它只影响附加了解决方案的路线?

解决方法

Before performing any action,Protractor asks Angular to wait until
the page is synchronized. This means that all timeouts and http
requests are finished.

这是timeouts from protractor的报价

因此,如果您希望量角器等待方法完成,请使用$timeout包装它. $timeout默认时间为0秒.但是,您确实需要实现$timeout调用$apply,这将启动摘要周期.这可能具有性能影响.你只需要自己尝试一下.

更新

旧答案不是最好的方法,与我后来使用的方法完全不同.

等待页面加载的最可靠方法是等待在该页面上显示或呈现元素.从这个意义上说,这更可靠.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读