如何在Angular 4.0中设置量角器的* ngFor集合?

时间:2017-10-14 05:09:47

标签: angular protractor e2e-testing angularjs-e2e angular-e2e

app.component.html

ffmpeg -f concat -i gpxfile.getAbsolutePath() -c:v libx264 -vf fps=25 -pix_fmt yuv420p root.getAbsolutePath()/video.mp4

我想测试所有学生是否都有名字。但是<div class="student-list" *ngFor="let student of students"> <p>{{student.name}}</p> </div> 是一个在app.component.ts中设置的列表。

现在我该如何设置量角器的students

我已经完成了以下

students

但这不起作用,它会抛出element(by.binding('students')).sendKeys(['abc', 'xyz']); 。 什么是正确的方法?

2 个答案:

答案 0 :(得分:2)

角色选择器(例如 by.model by.binding 不支持 Angular2 及以上版本

根据 docs

  

量角器适用于大于1.0.6 / 1.1.4的AngularJS版本   与Angular应用程序兼容。请注意,对于Angular应用程序,   不支持by.binding()和by.model()定位器。我们   建议使用by.css()。

你可以看到这里的例子

https://angular.io/guide/upgrade#e2e-tests

修改

要解决您的问题,您可以使用Id

<强> HTML

<div  *ngFor="let student of students" id="students">
    <p  class="student-list"> {{student.name}}</p>
</div>

<强>测试

var students = element.all(by.id('students')).all(by.css('student-list'));
var firstOrg = organizations.get(0);
it('should have an org with specific name', function() {
    expect(firstOrg.getText()).toEqual('Name you expect');
});

答案 1 :(得分:0)

<div class="student-list" *ngFor="let student of students">
    <p *ngIf="student.name">{{student.name}}</p>
</div>

这是您只能显示名字用户的方式之一。