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

时间:2019-04-23 09:24:26

标签: javascript protractor es6-class

我想在量角器的测试中使用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')
    })
})

1 个答案:

答案 0 :(得分: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
  2. 的文件
{
    "presets": ["env"]
}

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