如何在量角器中使用 ES6 类?
How to use ES6 classes in protractor?
我想在量角器测试中使用 ES6 classes。但是当我 运行 protractor conf.js
我在这条线上有 SyntaxError: Unexpected token export
export default class AngularHomePage {
此外,由于某些原因我无法使用 await/async,除了 SELENIUM_PROMISE_MANAGER: false
设置。
我可以使用这个语法吗,还是我遗漏了什么?
我试图将此 class 导入为 import AngularHomePage from './PageObject'
,但它给了我相同的 SyntaxError,但对于这一行。然后我使用const homePage = require('../Protractor demo/PageObject')
,但它也不起作用。
这是我的 class 代码:
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 转换为向后版本。
npm install babel-register
npm install babel-preset-env
- 在您的 protractor.conf.js 文件中:
onPrepare: () => {
require("babel-register");
}
- 在您的主项目文件夹中创建一个名为 .babelrc
的文件
{
"presets": ["env"]
}
您可以阅读有关 Babel 的更多信息 here。
也许你需要安装更多的 babel 包,这取决于你使用的版本。
我想在量角器测试中使用 ES6 classes。但是当我 运行 protractor conf.js
我在这条线上有 SyntaxError: Unexpected token export
export default class AngularHomePage {
此外,由于某些原因我无法使用 await/async,除了 SELENIUM_PROMISE_MANAGER: false
设置。
我可以使用这个语法吗,还是我遗漏了什么?
我试图将此 class 导入为 import AngularHomePage from './PageObject'
,但它给了我相同的 SyntaxError,但对于这一行。然后我使用const homePage = require('../Protractor demo/PageObject')
,但它也不起作用。
这是我的 class 代码:
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 转换为向后版本。
npm install babel-register
npm install babel-preset-env
- 在您的 protractor.conf.js 文件中:
onPrepare: () => {
require("babel-register");
}
- 在您的主项目文件夹中创建一个名为 .babelrc 的文件
{
"presets": ["env"]
}
您可以阅读有关 Babel 的更多信息 here。
也许你需要安装更多的 babel 包,这取决于你使用的版本。