Javascript Webdriverio:包括多个页面对象之间的公共元素

Javascript Webdriverio:包括多个页面对象之间的公共元素,javascript,webdriver-io,Javascript,Webdriver Io,使用webdriver io建议的页面对象模式,包含包含多个页面共有的元素(例如搜索框或导航栏)的模块的最佳方式是什么 例如 我的网页 var basePage = require('./basePage'); var searchModule = require('./searchModule'); var myPage = Object.create(basePage, { search: { value: Object.create(this, searchModule) },

使用webdriver io建议的页面对象模式,包含包含多个页面共有的元素(例如搜索框或导航栏)的模块的最佳方式是什么

例如

我的网页

var basePage = require('./basePage');
var searchModule = require('./searchModule');

var myPage = Object.create(basePage, {
    search: { value: Object.create(this, 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('sometext')但这是最好的(甚至是好的)方法吗

我想你说得对,我会在基页中保留任何将在多个页面上使用的函数。因为所有页面对象都需要基页,所以您将始终能够访问它们,而不需要编写重复的方法