如何将userId从浏览器传递到量角器?

时间:2016-11-11 07:04:22

标签: javascript node.js angular typescript protractor

所以我在angular2组件中使用了* ngFor来渲染用户。

<ul>
    <li *ng-for="let user of users">
      <input [(ng-model)]="user.name">          
      <button (click)="remove(user._id)">Remove</button>
      <a [routerLink]="['/edit',user._id]">
          <i class="fa fa-eye fa-fw"></i>
      </a>
    </li>
</ul>

现在在我的量角器测试中,当我点击此链接时,它不会导航到编辑组件。

所以我想做的是:

通过传递任何user._id导航到editComponent,但我不知道如何将user._id从模板传递到量角器e2e测试。

下面是我的测试:

it('should redirect to edit', () => {       
    browser.get('/edit/'+user._id); //here I want to pass user._id which is inside *ngFor of browser       
    browser.waitForAngular();
});

任何方式这样做? 感谢

1 个答案:

答案 0 :(得分:2)

使用evaluate()方法提取值表单范围变量。请参见下面的示例。

it('should redirect to edit', () => {       
    element(by.buttonText("Remove")).evaluate("user._id").then(function(userId){
       browser.get('/edit/'+userId);      
       browser.waitForAngular(); 
    })
});