gpt4 book ai didi

javascript - Webdriver.io - Node.js 意外的 token 导入 - 页面对象

转载 作者:行者123 更新时间:2023-12-03 02:57:29 26 4
gpt4 key购买 nike

您好,我在使用 Node.JS 和 Webdriver.io 运行测试脚本时遇到问题,一切正常,直到我尝试实现页面对象模式。在控制台输出上我收到错误:

ERROR: Unexpected token import

user/Desktop/webdriverio-test/test/specs/first.js:2

import GooglePage from '../pom/GooglePage';

Node 版本:v8.9.1

GooglePage.js:

class GooglePage{

get submitButton(){ return browser.element(`[name="btnK"]`);}

get searchField(){return browser.element('#lst-ib');}

open(){
browser.open("http://google.com");
}

submit(){
this.submitButton.click();
}

setValue(text){
this.searchField.setValue(text);
}
}
export default new GooglePage();

和测试脚本:

var assert = require('assert');
import GooglePage from '../pom/GooglePage';

describe('Visiting Google by PageObjectPattern',()=>{
it('Open Google',()=>{
GooglePage.open();
GooglePage.setValue("asdasd")
})
})

一切都与:http://webdriver.io/guide/testrunner/pageobjects.html 几乎相同

为什么它无法使用导入语法导入我的类来测试脚本?

最佳答案

需要注意的几点:

1) 确保您传入 enables ESM support in Node 8.5+ 的标志

Enabling#

The --experimental-modules flag can be used to enable features for loading ESM modules.

Once this has been set, files ending with .mjs will be able to be loaded as ES Modules.

node --experimental-modules my-app.mjs

2) 您的 ESM 文件的扩展名似乎是“.js”,应该是“.mjs”,例如“GooglePage.mjs”。

3)您似乎无法从 CJS 文件导入 ESM,因此您必须将测试规范更改为“.mjs”文件,然后导入依赖项,如下所示:

import assert from 'assert';
import GooglePage from '../pom/GooglePage';

或者将其保留为“.js”并要求依赖项为 CJS:

var assert = require('assert');
var GooglePage = require('../pom/GooglePage');

// Your module's content would be in GooglePage.default

希望有帮助!

关于javascript - Webdriver.io - Node.js 意外的 token 导入 - 页面对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47556685/

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