Как использовать классы ES6 в транспортире? - PullRequest
3 голосов
/ 23 апреля 2019

Я хочу использовать классы ES6 в моем тесте на транспортир.Но когда я запускаю protractor conf.js, у меня есть SyntaxError: Unexpected token export в этой строке

export default class AngularHomePage {

Также я не могу использовать await / async по некоторым причинам, кроме настройки SELENIUM_PROMISE_MANAGER: false.

Можетя вообще использую этот синтаксис, или я что-то упустил?

Я пытался импортировать этот класс как 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 Ответ

1 голос
/ 26 апреля 2019

Вам необходимо использовать npm с именем babel .
Он используется для преобразования ECMAScript 2015 и более новых версий JS в обратные версии.

  1. npm install babel-register
  2. npm install babel-preset-env
  3. В вашем файле protractor.conf.js:
onPrepare: () => {
    require("babel-register");
} 
Создайте в своей основной папке проекта файл с именем .babelrc
{
    "presets": ["env"]
}

Подробнее о Babel можно прочитать здесь .
Возможно, вам потребуется установить еще несколько пакетов babel, в зависимости от версий, с которыми вы работаете.

...