【发布时间】:2017-12-14 15:31:58
【问题描述】:
我正在尝试使用WebdriverIO Docs 中定义的语法定义一个 PageObject:
父页面
//page.js
export default class Page {
constructor() {
this.title = 'My Page';
}
open(path) {
browser.url(path);
}
}
子页面对象
// login.page.js
import Page from './page';
class LoginPage extends Page {
open() {
super.open('/login');
}
}
export default new LoginPage();
然后当我调用登录页面的open方法时:
const LoginPage = require('../../pages/login.page');
LoginPage.open();
我收到了TypeError:
TypeError: LoginPage.open is not a function
[chrome #0-0] at World.module.exports ...
[chrome #0-0] at Promise (<anonymous>)
[chrome #0-0] at F (/.../node_modules/core-js/library/modules/_export.js:35:28)
解决方法
我可以通过使用 Object.create 而不是 class 关键字(如上述链接文档中所述)重写我的 PageObjects 来解决此问题。
我使用 class 关键字并不是必须的,但我不想不知道为什么会失败。如果很明显为什么这不起作用,请原谅我我对 JS 很陌生。
【问题讨论】:
标签: javascript pageobjects webdriver-io