javascript - Protractor:获取 DOM 元素的底层 JS 对象

标签 javascript angularjs polymer protractor

我有以下简单的 paper-tabs 元素,我希望能够在 Protractor 测试中对此进行断言:

<paper-tabs>
    <paper-tab ng-repeat='tab in tabs'>
        {{tab.title}}
    </paper-tab>
</paper-tabs>

在 Protractor 测试中,我希望能够执行以下操作:

it('url to tab', function() {
    browser.get('#/my/url');
    var tabs = element(by.css('header paper-tabs'));
    tabs.getElement()(function(elem) {
        expect(elem.selected).toBe(0);

    });
});

请注意,selected 是一个 JS 属性,而不是 HTML 属性,如 polymer documentation 中所述。还有:

Use selected property to get or set the selected tab.

因此以下只是返回 null:

tabs.getAttribute('selected')

有没有办法获取底层的JS对象?例如,就像我在 Chrome 控制台中输入:

> document.getElementsByTagName('paper-tabs')[0].selected
0

我在 Protractor 的 API 中找不到任何可以满足我的目的的内容,我想知道其他人是如何做到这一点的?

谢谢!

最佳答案

试试这个:

it('url to tab', function() {
  browser.get('#/my/url');
  // Get all the tabs.
  var tabs = $$('[paper-tab]');    
  // select the first tab.
  expect(tabs.get(0).getAttribute('selected')).toBe(0);    
});

关于javascript - Protractor:获取 DOM 元素的底层 JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774825/

相关文章:

javascript - ie9 - FormData 未定义 - javascript

javascript - 手机下滑效果

javascript - 检测用户输入的文本框的值

angularjs - 字形上的点击事件

javascript - 没有实现接口(interface)元素

javascript - 机器人获取 channel 数据

javascript - Angular : ng-controller on directive does not work on transcluded elements within directive

polymer - 如何使用 Polymer 进行网络演示和幻灯片

polymer - 在 Polymer 元素内使用外部脚本

angularjs - AngularJS中ng-click中的三元表达式