Селекторы, когда они передаются с использованием нотации @ из тестовой функции в объект страницы, не работают.
Вот объект моей домашней страницы.
module.exports = {
url: function () {
return this.api.launchUrl;
},
elements: {
dropdownSelector: {
selector: '#input-13',
locateStrategy: 'css selector'
},
dropdownAuthSelector: {
selector: '#list-item-18-5 > span > span.ml-1',
locateStrategy: 'css selector'
},
},
commands: [{
setDropdown(selector, value) {
let { selectDropdown } = require('../modules/Utils.js');
selectDropdown(this.api, selector, value);
return this;
}
}]
};
Утилиты. js
module.exports.selectDropdown = function (self,selector,value) {
return self.click(selector).click(value);
}
Проверка js файла.
module.exports = {
'@tags': ['home'],
'Dashboard Dropdown test'(browser) {
const homePage = browser.page.homepage();
homePage
.navigate()
//.setDropdown(homePage.elements.dropdownSelector.selector, homePage.elements.dropdownAuthSelector.selector)
.setDropdown('@dropdownSelector', '@dropdownAuthSelector')
.assert.urlContains('Authentication').end();
}
};
Так что в основном setDropdown (homePage.elements.dropdownSelector.selector, homePage.elements.dropdownAuthSelector.selector) Работает нормально, но когда я использую @ обозначение, это не ' t работает .setDropdown ('@ dropdownSelector', '@dropdownAuthSelector') и выбрасывает ниже ошибки
Ошибка Ошибка при выполнении действия протокола .locateMultipleElements (): недействительный селектор: указан недопустимый или недопустимый селектор
Ошибка при выполнении действия протокола .locateMultipleElements (): недопустимый селектор: указан недопустимый или недопустимый селектор