2016-08-31 1 views
0

Pour l'instant, j'ai beaucoup de fonctions en double, qui ne diffèrent que par un nom d'élément auquel elles sont concaténées.NightwatchJs - Impossible de concaténer un élément référencé et du texte

Parce qu'ils sont conçus dans le modèle Object Model Page, ils suivent cette structure:

éléments Déclarer:

module.exports = { 

    commands: [fixtureCommands], 

    elements: { 
     navbarPreferences: '#preferences', 
    } 
}; 

Et par conséquent, je peux faire référence à l'élément dans le test lui-même (en utilisant le symbole @ précédant le nom de l'élément:

this.click('@navbarPreferences') 

Actuellement - j'ai cette fonction qui co ncatenates une variable avec du texte. Le texte est en fait un élément qui a été déclaré en dessous (comme indiqué ci-dessus dans mon exemple)

function: function (name) { 
var i; 

for (i = 0; i < names.length; i++) { 
    var elementName = '#preferences-' + strippedName; 
    this.click(elementName); 
} 
    return this.api; 
}, 

Cependant, comment puis-je faire référence à un élément (comme je peux dans l'exemple ci-dessus) et concaténer avec un autre variable.

var elementName = '@navbarPreferences' + strippedName; 

Le texte ci-dessus imprime le texte réel, pas l'élément lui-même.

Merci beaucoup.

Répondre

0

vous pouvez essayer d'ajouter une autre structure de déclaration dire «accessoires» avec votre variable dedans. que vous pouvez appeler la variable comme ceci: this.props.your_var exemple:

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

var elementName = this.props.navbarPreferences + strippedName;