NightwatchJs - 无法连接引用的元素和文本

时间:2016-08-31 12:41:49

标签: javascript concatenation nightwatch.js pageobjects

目前,我有很多重复的功能,只有它们连接的元素名称不同。

因为它们是在页面对象模型模式中设计的,所以它们遵循以下结构:

声明元素:

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;

以上打印实际文本,而不是元素本身。

非常感谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试添加另一个声明结构,说&#34;道具&#34;你的变量。你可以像这样调用变量:this.props.your_var 例如:

props: {
   navbarPreferences: '#preferences',
},
elements: {
       someElement: '#some-element'
   },

var elementName = this.props.navbarPreferences + strippedName;