Моя цель - вытащить css width
определенного элемента.
Фактическая команда jQuery, которую я использую в консоли Chrome, работает хорошо:
$('div-grid-directive[grid-name="SAT"] .qMinus1_resize_expand').first().css('width');
"0px"
Однако при запуске Protractor в командной строке Win 7 я получаю следующую ошибку:
Message:
Failed: element(...).first is not a function
Ошибка указывает на мою страницу объектов topNav.icons.page.js в this.getQMinus1Column
:
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 правильный.
Здесь очень ценятся советы...
С уважением, Боб