gpt4 book ai didi

javascript - WebdriverIO ES6 PageObject 方法不是函数错误

转载 作者:行者123 更新时间:2023-11-30 20:54:32 24 4
gpt4 key购买 nike

我正在尝试使用 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 的新手。

最佳答案

我认为您在这里混合了 ES6 和 CommonJS 语法。将测试更改为使用 ES6 语法,它应该会按预期开始工作。

import LoginPage from '../../pages/login.page';

describe('login tests', () => {
beforeAll(() => {
LoginPage.open();
});

it('should do something', () => {
//do something
});
})

关于javascript - WebdriverIO ES6 PageObject 方法不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com