Мы только начали внедрять фреймворк WebdriverIO-mocha-chai на работе, и, поскольку у меня есть опыт работы с Selenium/Java, мне немного сложно понять это.
Мои объекты страницы выглядят так:
**page.js**
export default class Page {
get title() { return browser.getTitle() };
get header() { return browser.element('.Header') }
get logoutLink() { return browser.element('a.logout') }
open(url) {
browser.windowHandleFullscreen().url(`/#/${url}`);
}
}
**page1.js**
import Page from './page'
import Page2 from './Page2'
class Page1 extends Page {
get element1() { return browser.element('selector1') }
get element2() { return browser.element('selector2') }
clickElement1Page1() {
this.element1.scroll();
this.element1.waitForVisible();
this.element1.click();
return this;
}
}
export default new Page1()
**page2.js**
import Page from './page'
import Page1 from './page1';
class Page2 extends Page {
get element1() { return browser.element('selector1') }
get element2() { return browser.element('selector2') }
get element3() { return browser.element('selector3') }
get element4() { return browser.element('selector4') }
open() {
super.open('page2')
}
clickElement1Page2() {
this.element1.scroll();
this.element1.waitForVisible();
this.element1.click();
return this;
}
fillForm(name, title) {
this.element2.setValue(name);
this.element3.setValue(title);
this.element4.click();
return new Page1();
}
}
export default new Page2()
Разница между этой и рекомендуемой моделью на сайте WebdriverIO заключается в том, что я добавил операторы возврата, что приводит нас к проблеме, с которой мне нужна помощь. Я хочу, чтобы мои тесты выглядели как можно проще, например:
Page2.clickElement1Page2().fillForm("text", "text").clickElement1Page1();
expect(...).to.be.true;
Прямо сейчас я получаю «_page1.default не является конструктором» в строке return new Page1().
Принимая во внимание, что в этой парадигме элементы не инициализируются в конструкторе, возможна ли такая цепочка с WebdriverIO? Любые предложения или примеры надежного проекта webdriverIO POM приветствуются. Спасибо!