簡體   English   中英

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

[英]How to use ES6 classes in protractor?

我想在量角器的測試中使用ES6類。 但是,當我運行protractor conf.js我有SyntaxError: Unexpected token export此行上的SyntaxError: Unexpected token export

export default class AngularHomePage {

除了SELENIUM_PROMISE_MANAGER: false設置之外,我也不能出於某種原因使用await / async。

我可以使用這種語法,還是我錯過了什么?

我試圖import AngularHomePage from './PageObject'導入這個類作為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')
    })
})

你需要使用名為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的內容。
也許您需要安裝更多的babel軟件包,具體取決於您使用的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM