我有一个使用以下代码的页面对象:
var MyToolComp = require('./MyToolComponent').MyToolComponent;
var MyToolCommand = {
get: function (cssLocator, timeout) {
return new MyToolComp({client: this, locator: cssLocator, timeout: timeout});
},
assertMyToolCount: function (expectedMyToolesCount, timeoutMs) {
console.log('Validate number of MyTool in the page to be [' + expectedMyToolesCount + ']');
this.waitForElementsCount(this.section.john_container.selector, expectedMyToolesCount, timeoutMs);
return this;
},
};
module.exports = {
commands: [MyToolCommand],
sections: {
john_container: {
selector: '.john_container',
elements: {
john_MyTool: {
selector: '.john_MyTool'
},
header: {
selector: '.john_MyTool_header'
}
}
},
multi_widget: {
selector: '.john_multi_widget'
}
}
};
升级到1.1.0后,我无法在测试中运行以下代码: var myToolPage = browser.page.myTool(); myToolPage.assertMyToolCount(1);
调试时,我看到myToolPage的变量为“ section”,但没有命令。
如果我删除部分并且只能这样做
module.exports = MyToolCommand;
或
module.exports = {
commands: [MyToolCommand]
}
然后我可以跑步
myToolPage.assertMyToolCount(1);
但是它失败了,因为
this.section.john_container.selector
没有定义。
我在做什么错?我找不到任何here或here。我还有其他可以帮助我的内容吗?升级NW时我还应该了解什么? (这是我第一次看到任何与守夜有关的东西,所以我必须随时学习。)
预先感谢:)
答案 0 :(得分:0)
我解决此问题的方法是替换
module.exports = {
commands: [MyToolCommand],
sections: {
john_container: {
selector: '.john_container',
elements: {
john_MyTool: {
selector: '.john_MyTool'
},
header: {
selector: '.john_MyTool_header'
}
}
},
multi_widget: {
selector: '.john_multi_widget'
}
}
};
使用
exports.commands = MyToolCommand;
exports.sections = {
john_container: {
selector: '.john_container',
elements: {
john_MyTool: {
selector: '.john_MyTool'
},
header: {
selector: '.john_MyTool_header'
}
}
},
multi_widget: {
selector: '.john_multi_widget'
}
};