目前,我有很多重复的函数,它们只是连接到的元素名称不同。
因为它们是在页面对象模型模式中设计的,所以它们遵循以下结构:
声明元素:
module.exports = {
commands: [fixtureCommands],
elements: {
navbarPreferences: '#preferences',
}
};
然后,我可以在测试中引用元素本身(使用元素名称前面的@符号):
this.click('@navbarPreferences')
当前-我有这个函数连接一个变量和文本。文本实际上是在它下面声明的元素中(如上面我的例子所示)
function: function (name) {
var i;
for (i = 0; i < names.length; i++) {
var elementName = '#preferences-' + strippedName;
this.click(elementName);
}
return this.api;
},
但是,如何引用一个元素(就像在上面的例子中一样)并将它与另一个变量连接起来呢?var elementName = '@navbarPreferences' + strippedName;
上面的命令输出的是实际的文本,而不是元素本身。
许多谢谢。你可以尝试添加另一个声明结构,比如"props",其中包含你的变量。然后你可以这样调用这个变量:this.props.your_var例子:
props: {
navbarPreferences: '#preferences',
},
elements: {
someElement: '#some-element'
},
var elementName = this.props.navbarPreferences + strippedName;