ich mit nightwatch.js arbeite i eine Auslagerungsdatei haben, die wie folgt aussieht:nightwatch.js behaupten auf mehrere Seitenbereiche
sections: {
table: {
selector: '.sr-filterable-data-layout--collection',
elements: {
header: {
selector: '.sr-collection--header'
},
body: {
selector: 'sr-collection--body'
}
}
},
filters: {
selector: '.sr-filterable-data-layout--filters',
elements: {
filterByName: {
selector: '#filter-name'
}
}
},
actions: {
selector: '.sr-entities-actions',
elements: {
addButton: {
selector: '.mdi-content-add'
}
}
}
},
commands: [{
editEntity(options) {
return this.section.body();
},
verifyPageload() {
return (
this.section.filters.waitForElementVisible('@filterByName')
.section.table.waitForElementVisible('@header')
// .section.actions.waitForElementVisible('@addButton')
.assert.title(this.props.title)
);
}
}
]
auf jedes der Elemente behaupten individuell funktioniert, aber wenn ich an die Kette versuchen die Behauptungen wie folgt aus:
this.section.filters.waitForElementVisible('@filterByName')
.section.table.waitForElementVisible('@header')
es mit dem folgenden Fehler fehl:
✖ TypeError: Cannot read property 'waitForElementVisible' of undefined
jede Hilfe in Bezug auf, wie Kette diese behauptet wird zusammen viel
geschätzt werden
, die äußerst umständlich erscheint, fügen Sie redundante Schritte hinzu, die von der Selenium-Sitzung ausgeführt werden (zurück zum übergeordneten Knoten), und der Code ist viel weniger lesbar. weiter - der Code ist starr und fehleranfällig: Was passiert, wenn eines der Elemente seine Position im Dom ändert? Sie müssten Ihre Tests entsprechend ändern. –