量角器:获取DOM元素的底层JS对象

时间:2014-11-06 08:27:50

标签: javascript angularjs polymer protractor

我有以下简单的paper-tabs元素,我希望能够在量角器测试中断言:

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

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

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中所述:

  

使用所选属性来获取或设置所选标签。

因此,以下只是返回null

tabs.getAttribute('selected')

是否有办法获得底层的JS对象?例如,就像我输入Chrome控制台一样:

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

我在Protractor的API中找不到任何符合我目的的东西,我想知道其他人是怎么做到的?

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

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);    
});