如何在量角器中使用ES6类?

问题描述 投票:3回答:1

我想在量角器的测试中使用ES6类。但是,当我运行protractor conf.js时,我在这条线上有SyntaxError: Unexpected token export

export default class AngularHomePage {

除了SELENIUM_PROMISE_MANAGER: false设置之外,我也不能出于某种原因使用await / async。

我可以使用这种语法,还是我错过了什么?

我试图将这个类导入为import AngularHomePage from './PageObject',但是它给了我相同的SyntaxError,但对于这一行。然后我使用const homePage = require('../Protractor demo/PageObject'),但它也不起作用。

这是我的班级代码:

export default class AngularJsHomePage {
    constructor() {
        this.nameInput = element(by.model('yourName'))
        this.greeting = element(by.binding('yourName'))
    }

    async get () {
        await browser.get('http://www.angularjs.org')
    }

    async setName (name) {
        await this.nameInput.sendKeys(name)
    }

    async getGreetingText () {
        return await this.greeting.getText()
    }

    getGreeting () {
        return this.greeting
    }
}

这是我的spec.js代码

// import { element, by, browser } from "protractor"
// import AngularJsHomePage from "./PageObject"
const homePage = require('../Protractor demo/PageObject')

describe('Angular homepage', function() {
    it('should greet the named user', function() {
        const page = new homePage()

        await page.get()

        await page.setName('Julie')

        expect(await page.getGreetingText()).toEqual('Hello Julie')
    })
})
javascript protractor es6-class
1个回答
1
投票

你需要使用名为babel的npm。 它用于将ECMAScript 2015和更新版本的JS转换为后向版本。

  1. npm install babel-register
  2. npm install babel-preset-env
  3. 在你的protractor.conf.js文件中:
onPrepare: () => {
    require("babel-register");
} 
  1. 在主项目文件夹中创建一个名为.babelrc的文件
{
    "presets": ["env"]
}

您可以阅读有关Babel here的更多信息。 也许您需要安装更多的babel软件包,具体取决于您使用的版本。

© www.soinside.com 2019 - 2024. All rights reserved.