我正在尝试使用nightwatch.js创建一个end-2-end测试套件我已经环顾了一下并且没有真正弄清楚如何使用pageBase,就像在实现POM时通常使用的一样。我正在使用内置于nightwatch的page_object,但似乎无法使用pageBase。这是代码示例。为简化起见,假设我有一个common.js文件和一个test.js文件,我希望test.js继承所有common.js命令和元素,并实现它自己的一些命令和元素,但我正在努力用语法。
这是common.js文件
let commonCommands = {
clickOnMe: function () {
return this.waitForElementVisible('@someElement', 2000)
}
};
module.exports = {
commands: [commonCommands],
elements: {
someElement: '#elementId'
},
};
这是test.js文件
const common = require('./common');
let testCommands = {
doStuffFromTest: function () {
return this;
}
};
module.exports = {
url: function () {
return this.api.launch_url ;
},
commands: common.commands,
elements: common.elements
};
如何向test.js添加命令和元素?
您通常不希望从测试中访问这些命令,而是从其他页面对象访问这些命令。由于这是您的所有命令将发生的地方,因此点击元素或检查是否存在某些内容等常见操作将在页面对象级别完成。