量角器定位器问题

时间:2016-09-26 19:30:49

标签: protractor angularjs-e2e

我的目标是提取特定元素的css width

我在Chrome控制台中使用的实际jQuery命令效果很好:

$('div-grid-directive[grid-name="SAT"] .qMinus1_resize_expand').first().css('width');
"0px"

但是,在Win 7 cmd提示符下运行Protractor,我收到以下错误:

Message:
  Failed: element(...).first is not a function

错误指向this.getQMinus1Column中我的对象页面 topNav.icons.page.js



module.exports = function(){        
    this.clickExpandRowsIcon = function(){
        $('.resize-btns > .glyphicon.glyphicon-resize-horizontal').click();
        browser.driver.sleep(2000);
    };
    this.getQMinus1Column = function(){            
        return element(by.css('div-grid-directive[grid-name="SAT"] .qMinus1_resize_expand')).first();
    };
};




和我的SAT.spec.js文件:



var IndexPage = require('./pageObjects/index.page.js');
var TopNavBar = require('./pageObjects/topNav.icons.page.js');

describe('Testing the Sales & Trading Top Nav grid icons', function(){
    var indexPage = new IndexPage();
    var topNavBar = new TopNavBar();
    
    beforeEach(function () {
        indexPage.get();   // Launches app !!        
    });
    describe('Clicking on the Expand Rows icon', function () {
  
        it('Should horizontally expand previous quarters qMinus1 thru qMinus6', function () {        
            topNavBar.clickExpandRowsIcon();
            var elem = topNavBar.getQMinus1Column();

            expect(elem).getCssValue().indexOf('width: 5px;').not.toBe('-1');            
	 });
    });
    
});




因此,在我尝试获取css width属性之前,我正在努力使用以下格式返回first()

return element(by.css('MY-CSS')).first();

我是否在这一行中有太多的事情,或者说Protractor的语法错误?

 return element(by.css('div-grid-directive[grid-name="SAT"] .qMinus1_resize_expand')).first();

同样,相同的语法在控制台工具中使用jQuery,因此CSS选择是正确的。

这里非常感谢建议...

的问候, 鲍勃

1 个答案:

答案 0 :(得分:2)

根据thiselement不返回要在其中调用first方法的对象集合。

您可能想要使用element.all(locator)