使用webdriver-io建议的页面对象模式,包含包含多个页面共有元素的模块的最佳方式是什么,例如。搜索框或导航栏?
例如......
MYPAGE
var basePage = require('./basePage');
var searchModule = require('./searchModule');
var myPage = Object.create(basePage, {
search: { value: Object.create(this, searchModule) },
...
searchModule
var searchModule = {
searchBox: { get: function() { return browser.element('input#s'); }},
searchFor: { value: function(searchText) {
this.searchBox.setValue(searchText);
browser.keys('Enter');
}}
这样可以使用,并允许使用:myPage.search.searchFor('some text');
,但这是最好的(甚至是好的)方法吗?
答案 0 :(得分:0)
我认为你做得对,我会保留将在基页的多个页面上使用的任何功能。由于所有页面对象都需要基页,因此您始终可以访问它们,而无需编写重复的方法。