Мой файл pageObject:
this.clickTheProvidedValueInCompanyInformation = function (item) {
this.innerMenu = this.companyInformation.all(by.className('innermenu')).first();
this.selectedItem = this.innerMenu.all(by.tagName('li')).filter(function (elem, index) {
return elem.getText().then(function (text) {
return text.toUpperCase().replace(/ |-/g, '') === item.toUpperCase().replace(/ |-/g, '');
});
});
this.selectedItem.click();
this.selectedItem.getText().then(function (text) {
var option = text.toString();
var pageObject = option.replace(/ /g, '_').toLowerCase();
*******return require('./' + pageObject + '.page.js');**********
})
};
это строка из моего файла спецификации:
var generalInfo = pageObject.clickTheProvidedValueInCompanyInformation('generalInformation');
как видите, вызов pageObject.clickTheProvidedValueInCompanyInformation('generalInformation')
возвращает другой объект страницы.
Когда я пытаюсь получить доступ к своей переменной generalInfo в своих спецификациях, она выдает ошибку
общая информация не определена
.Что я могу сделать, чтобы получить доступ к возвращенному объекту страницы через переменную generalInfo.
Если я помещу свой return require('./anotherPageObject.js')
вне getText(). Тогда он будет работать нормально. Но мне нужно выполнить некоторые операции с текстом, чтобы изменить мое соглашение об именах, чтобы он возвращал правильный объектный файл страницы. (я хочу вернуть файл pageobject с именем «general_information.page.js»)