2016-08-31 1 views
0

Im Moment habe ich viele doppelte Funktionen, die sich nur durch einen Elementnamen unterscheiden, mit dem sie verkettet sind.NightwatchJs - Konnte ein referenziertes Element und einen Text nicht verketten

Weil sie in der Seite Object Model Muster entworfen wurde, folgen sie diese Struktur:

Deklarieren Elemente:

module.exports = { 

    commands: [fixtureCommands], 

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

Und dann folglich kann ich das Element in der Testreferenz selbst (mit dem @ -Zeichen vor dem Elementnamen:

this.click('@navbarPreferences') 

Derzeit - ich habe diese Funktion, die co ncatenates eine Variable mit Text. Der Text ist eigentlich in einem Element, das unter ihm erklärt wurde (wie oben in meinem Beispiel gezeigt)

function: function (name) { 
var i; 

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

Doch wie kann ich ein Element verweisen (wie ich kann in dem obigen Beispiel) und verketten es mit einem anderen Variable.

var elementName = '@navbarPreferences' + strippedName; 

Der obige druckt der eigentliche Text aus, nicht das Element selbst.

Vielen Dank.

Antwort

0

können Sie versuchen, eine andere Deklarationsstruktur say "Requisiten" mit Ihrer Variablen darin hinzuzufügen. this.props.your_var Beispiel: als Sie die Variable wie folgt aufrufen können

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

var element = this.props.navbarPreferences + strippedName;

Verwandte Themen