我想在量角器的测试中使用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')
})
})
答案 0 :(得分:1)
您需要使用名为 babel 的npm。
它用于将ECMAScript 2015和更高版本的JS转换为向后版本。
npm install babel-register
npm install babel-preset-env
onPrepare: () => {
require("babel-register");
}
{
"presets": ["env"]
}
您可以阅读有关Babel here的更多信息。
也许您需要安装更多的babel软件包,具体取决于您使用的版本。