首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AngularJS E2E测试中使用element()E2E()

在AngularJS E2E测试中使用element()E2E()
EN

Stack Overflow用户
提问于 2013-01-28 19:40:58
回答 2查看 7.6K关注 0票数 3

我正在用角度写一个端到端的测试,我想验证DOM元素相对于另一个DOM元素的位置。幸运的是,角E2E DSL有一个直通方法用于jQuery的偏移()方法。非常适合我的用例!

但是,我很困惑如何使用此方法返回的对象。对偏移量()的调用返回一个具有属性、top的对象。当我试图在测试中访问这些属性时,Angular会抱怨。

这段代码很好用:

代码语言:javascript
复制
expect(element("#anID").offset()).toEqual({"top":100,"left":100});

此代码不工作,并引发一个错误:

代码语言:javascript
复制
expect(element("#anID").offset().top).toEqual(100);

TypeError: Cannot read property 'name' of undefined
    at Object.angular.scenario.matcher.(anonymous function) (http://localhost:8000/test/angular/angular-scenario.js:23994:41)
    at Object.executeStatement (http://localhost:8000/test/angular/angular-scenario.js:23960:30)
    at Object.chain.(anonymous function) [as toEqual] (http://localhost:8000/test/angular/angular-scenario.js:23968:37)
    at Object.<anonymous> (http://localhost:8000/test/E2E-scenarios.js:78:53)

如何使用从偏移量()返回的值来构造大致如下的期望:

代码语言:javascript
复制
expect(element("#anID").scrollTop() - element("#anotherID").offset().top).toEqual(100);

更新

在与乔希·大卫·米勒( Josh David Miller )反复交谈之后,我看到了我真正的问题:如何在expect()调用之外获得angular.scenario.Future对象的值,这样我就可以使用它作为其他期望的基础。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-11 21:40:36

角邮寄列表上找到了答案。类似这样的内容将适用于在单个期望中使用多个angular.scenario.Future对象值:

代码语言:javascript
复制
  it('async expectation', function() {
    browser().navigateTo('index.html');
    var relativeElement = element("#anID").prop( 'offsetTop' )

    this.addFuture('ScenarioRunner step title', function(done) {
      expect(element('#anotherID').scrollTop()).toEqual(relativeElement.value - 100);
      done();
    });
  });

角github回购上存在一个问题,就是如何更优雅地将它集成到ScenarioRunner中。

票数 3
EN

Stack Overflow用户

发布于 2013-01-28 20:41:56

实际上,您不应该需要jQuery通过。这应该工作得很好:

代码语言:javascript
复制
expect( element.prop( 'offsetLeft' ) ).toEqual( 361 );
expect( element.prop( 'offsetTop' ) ).toEqual( 451 );

如果没有,你能把一个完整的最低限度的例子放在摇椅或柱塞上吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14569840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档