nightwatch.js 断言多个页面部分
nightwatch.js assert on multiple page sections
我正在与 nightwatch.js 合作
我有一个如下所示的页面文件:
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)
);
}
}
]
断言每个元素单独工作但是当我尝试像这样链接断言时:
this.section.filters.waitForElementVisible('@filterByName')
.section.table.waitForElementVisible('@header')
失败并出现以下错误:
✖ TypeError: Cannot read property 'waitForElementVisible' of undefined
任何有关如何将这些断言链接在一起的帮助将不胜感激
您不能这样做,因为 section
是 页面 属性,而 waitForElementVisible
return 是对客户端实例 ("browser"),而不是页面。
只是拆分命令,真的没有理由将它们链接起来。
另一件事; return ()
块在这里是多余的,直接return断言结果:
verifyPageload() {
// waitForStuff...
return this.assert.title(this.props.title)
}
虽然此处的评论提出了规避该问题的方法。我终于偶然发现了在第一次调用 return 页面的根目录之后链接 .parent 来链接不同部分的多个操作的方法,而不是像这样的部分:
verifyPageload() {
this.section.table
.waitForElementVisible('@header')
.parent.section.filters.waitForElementVisible('@filterByName')
.parent.section.actions.waitForElementVisible('@addButton')
.assert.title(this.props.title);
return this;
}
我正在与 nightwatch.js 合作 我有一个如下所示的页面文件:
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)
);
}
}
]
断言每个元素单独工作但是当我尝试像这样链接断言时:
this.section.filters.waitForElementVisible('@filterByName')
.section.table.waitForElementVisible('@header')
失败并出现以下错误:
✖ TypeError: Cannot read property 'waitForElementVisible' of undefined
任何有关如何将这些断言链接在一起的帮助将不胜感激
您不能这样做,因为 section
是 页面 属性,而 waitForElementVisible
return 是对客户端实例 ("browser"),而不是页面。
只是拆分命令,真的没有理由将它们链接起来。
另一件事; return ()
块在这里是多余的,直接return断言结果:
verifyPageload() {
// waitForStuff...
return this.assert.title(this.props.title)
}
虽然此处的评论提出了规避该问题的方法。我终于偶然发现了在第一次调用 return 页面的根目录之后链接 .parent 来链接不同部分的多个操作的方法,而不是像这样的部分:
verifyPageload() {
this.section.table
.waitForElementVisible('@header')
.parent.section.filters.waitForElementVisible('@filterByName')
.parent.section.actions.waitForElementVisible('@addButton')
.assert.title(this.props.title);
return this;
}