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

时间:2016-03-27 18:14:02

标签: javascript webdriver-io

使用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');,但这是最好的(甚至是好的)方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你做得对,我会保留将在基页的多个页面上使用的任何功能。由于所有页面对象都需要基页,因此您始终可以访问它们,而无需编写重复的方法。