Webdriverio: включение общих элементов между несколькими объектами страницы

Используя предложенный шаблон объекта страницы webdriver-io, как лучше всего включить модуль, содержащий элементы, общие для нескольких страниц, например. окно поиска или панель навигации?

Например...

моя страница

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'); но это лучший (или даже хороший) способ сделать это?


person Brine    schedule 27.03.2016    source источник


Ответы (1)


Я думаю, вы правильно поняли. Я бы оставил все функции, которые будут использоваться на нескольких страницах, на базовой странице. Поскольку всем объектам страницы требуется базовая страница, у вас всегда будет к ним доступ, и вам не нужно будет писать повторяющиеся методы.

person AdmiralAckbar142    schedule 26.04.2016