我的目标是提取特定元素的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选择是正确的。
这里非常感谢建议...
的问候, 鲍勃