2015-12-17 40 views
0

我必须使用prtractor来测试e2e SPA应用程序的构建与AngularJS。 其中HTML看起来象下面这样:量角器:无法为场景编写protactor测试用例

<h4 class="list-group-item-heading">{{vm.firstName}} {{vm.lastName}}</h4> 

有没有什么办法让名字和姓氏出来的吗? 而且控制器有vm.Email但从未绑定到视图,如何获得量角器中的值?

单元测试用例:

var firstName = element(by.binding('vm.item.firstName')).getText(); 
var secondName = element(by.binding('vm.item.lastName')).getText(); 

在这种情况下firstName和lastName带有值以下是两个值中的级联。

回答

0

在量角器测试中,您正在从用户(和浏览器)的角度测试您的应用程序。因此,您可以访问最终用户可以访问的元素,这在HTML代码中可用。这就是为什么vm.Email不可访问。

举例来说,如果您想要测试这些特定元素,可以通过两种方式来实现。

  1. 将绑定放在单独的标记中,例如, span

    <span>{{vm.firstName}}</span> <span>{{vm.lastName}}</span>

,然后使用此:

var firstName = element(by.exactBinding('vm.firstName')).getText(); 
var secondName = element(by.exactBinding('vm.lastName')).getText(); 
  • 照此,而是使用ng-bind

    <h4 class="list-group-item-heading"><span ng-bind="vm.firstName"></span> <span ng-bind="vm.lastName"></span></h4>

  • ,然后使用:

    var firstName = element(by.exactBinding('vm.firstName')).getText(); 
    var secondName = element(by.exactBinding('vm.lastName')).getText(); 
    

    或本:

    var firstName = element(by.binding('vm.firstName')).getText(); 
    var secondName = element(by.binding('vm.lastName')).getText(); 
    

    检查文档here

    +0

    谢谢你会建议相同.. :) – Dreamweaver

    相关问题