【问题标题】:How to pass userId from browser to protractor?如何将 userId 从浏览器传递到量角器?
【发布时间】:2016-11-11 07:04:21
【问题描述】:

所以我在 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();
});

有什么办法吗? 谢谢

【问题讨论】:

    标签: javascript node.js angular typescript protractor


    【解决方案1】:

    使用evaluate()方法提取范围变量的值。看下面的例子。

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

    【讨论】:

    • @BhushanGadekar 我不熟悉 angular2。 routerLink 是什么意思?
    • @Sudharshan 您在删除按钮上使用了 by.buttonText .. 但我想单击此处的锚链接。即编辑
    • 你可以试试这个吗element(by.css("button ~ a"))
    猜你喜欢
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2017-08-12
    • 2011-12-18
    • 2020-05-13
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多