【问题标题】:How to access angular md-tab elements from protractor?如何从量角器访问角度 md-tab 元素?
【发布时间】:2017-11-22 03:33:18
【问题描述】:

HTML:

<md-tab-group class="my-tab-group">
    <md-tab class="my-tab"></md-tab>
    <md-tab class="my-tab"></md-tab>
</md-tab-group>

e2e 测试:

elems = element(by.css('.my-tab-group')).all(by.css('.my-tab'))
expect(elems).toBeTruthy();
expect(elems.count()).toEqual(2);

此测试失败:Expected 0 to equal 2

为什么量角器无法识别标签的数量。这是由于角度元素md-tab-group 而发生的。如果我评论 md-tab-group,我可以访问标签。 md-tab-group 存在时如何访问 tab 元素?

附:我正在使用 Angular 4.0

【问题讨论】:

    标签: angular protractor e2e-testing angular-e2e


    【解决方案1】:

    Angular 为 md-tab(角度指令)创建新元素。此类标签可以通过 id 引用,例如“md-tab-label-0-0”表示第一个标签,“md-tab-label-0-1”表示第二个标签,如下图所示。

    第一个标签元素可以被

    访问
    element(by.id('md-tab-label-0-0'));
    

    而且,这个问题的答案是

    elems = element.all(by.css('.mat-tab-labels'))
    expect(elems).toBeTruthy();
    expect(elems.count()).toEqual(2);
    

    【讨论】:

    • 在一些随机的情况下,id变成md-tab-label-1-0而不是md-tab-label-0-0,md-tab-label-1-1而不是md -tab-label-0-1,有这个模式吗?
    【解决方案2】:

    然后尝试使用它来检索mength

    elems = element(by.css('.my-tab-group')).all(by.css('.my-tab'));
    elems.then(function (result) {
      expect(result.length).toEqual(2);
    });
    

    或者

    elems.count().then(function (size) {
       expect(size).toEqual(2);
    });
    

    【讨论】:

    • 不,它不起作用。 “expect(elems.count()).toEqual(2)”是正确的。问题在于“md-tab-group”。量角器没有识别“md-tab-group”中的元素。
    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多