Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webdriver.io-Node.js意外令牌导入-页面对象_Javascript_Node.js_Webdriver Io - Fatal编程技术网

Javascript Webdriver.io-Node.js意外令牌导入-页面对象

Javascript Webdriver.io-Node.js意外令牌导入-页面对象,javascript,node.js,webdriver-io,Javascript,Node.js,Webdriver Io,您好,我在使用Node.JS和Webdriver.io运行测试脚本时遇到问题。在我尝试实现页面对象模式之前,一切正常。在控制台输出时,我收到错误: 错误:意外的令牌导入 user/Desktop/webdriverio test/test/specs/first.js:2 从“../pom/GooglePage”导入GooglePage 节点版本:v8.9.1 GooglePage.js: class GooglePage{ get submitButton(){ return browser

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

错误:意外的令牌导入

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

从“../pom/GooglePage”导入GooglePage

节点版本: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")
     })
  })   
一切都几乎与上一样:


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

需要注意的几点:

1) 确保您传递的是

使能#

--experimental modules标志可用于启用 加载ESM模块

一旦设置好,以.mjs结尾的文件将能够 作为ES模块加载

节点——实验模块my-app.mjs

2) 看起来ESM文件的扩展名是“.js”,应该是“.mjs”,就像“GooglePage.mjs”一样

3) 您似乎无法从CJS文件和vs导入ESM。因此,您必须将测试规范更改为“.mjs”文件,然后像这样导入依赖项:

import assert from 'assert';
import GooglePage from '../pom/GooglePage';
或者将其保留为“.js”,并要求依赖项作为CJ:

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

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

希望有帮助

需要注意的几件事:

1) 确保您传递的是

使能#

--experimental modules标志可用于启用 加载ESM模块

一旦设置好,以.mjs结尾的文件将能够 作为ES模块加载

节点——实验模块my-app.mjs

2) 看起来ESM文件的扩展名是“.js”,应该是“.mjs”,就像“GooglePage.mjs”一样

3) 您似乎无法从CJS文件和vs导入ESM。因此,您必须将测试规范更改为“.mjs”文件,然后像这样导入依赖项:

import assert from 'assert';
import GooglePage from '../pom/GooglePage';
或者将其保留为“.js”,并要求依赖项作为CJ:

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

// Your module's content would be in GooglePage.default
希望有帮助