javascript - 从 WebStorm 运行 Protractor 测试时,在导入语句中获取意外的标记 {

标签 javascript protractor webstorm

我使用的是 Node 6.4.1 和 esversion 6。

我正在尝试从 WebStorm 运行 Protractor 测试,但在运行时出现以下错误。浏览器已成功调用,但随后停止。

Error:
    [20:15:29] I/launcher - Running 1 instances of WebDriver
    [20:15:29] I/hosted - Using the selenium server at           http://localhost:4444/wd/hub
    [20:15:33] E/launcher - Error: D:\Protractor-Final\e2e-tests\spec.js:3
    import {WebDriver as browser}  from "selenium-webdriver";
       ^

SyntaxError: Unexpected token {
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
[20:15:33] E/launcher - Process exited with error code 100

Process finished with exit code 4

Conf.js 文件

"use strict";
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js'],
  capabilities: {
  browserName: 'chrome'
  }
};

spec.js

"use strict";

import {WebDriver as browser}  from "selenium-webdriver";
import {By as by} from "selenium-webdriver";
import {beforeEach, describe, it} from "selenium-webdriver/testing";
import {element} from "protractor";


describe('Protractor Demo App', function() {
let firstNumber = element(by.model('first'));
let secondNumber = element(by.model('second'));
let goButton = element(by.id('gobutton'));
let latestResult = element(by.binding('latest'));

beforeEach(function() {
browser.get('http://juliemr.github.io/protractor-demo/');
});

it('should have a title', function() {
  expect(browser.getTitle()).toEqual('Super Calculator');
});

it('should add one and two', function() {
  firstNumber.sendKeys(1);
  secondNumber.sendKeys(2);

  goButton.click();

  expect(latestResult.getText()).toEqual('3');
 });

 it('should add four and six', function() {
  firstNumber.sendKeys(4);
  secondNumber.sendKeys(6);

  goButton.click();
  expect(latestResult.getText()).toEqual('10');
  });

 it('should read the value from an input', function() {
   firstNumber.sendKeys(1);
   expect(firstNumber.getAttribute('value')).toEqual('1');
  });
});

最佳答案

我承认我不熟悉 webstorm,但我认为没有理由需要在规范文件中导入这些内容。 Protractor 应在自动启动时设置这些变量。我可能错过了一些东西,但是您可以尝试删除它们并查看您的项目是否可以运行。

import {WebDriver as browser}  from "selenium-webdriver";
import {By as by} from "selenium-webdriver";
import {beforeEach, describe, it} from "selenium-webdriver/testing";
import {element} from "protractor";

关于javascript - 从 WebStorm 运行 Protractor 测试时,在导入语句中获取意外的标记 {,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54724373/

相关文章:

javascript - javascript 中访问 dom 中特定 id 的奇怪语法

javascript - javascript 中的 WebDriver : how to check if an element exists?

javascript - 使用 Protractor 检索 css 颜色属性

Dart2JS 找不到导入包 WebStorm

javascript - 执行脚本前查看对象是否未定义

javascript - JavaScript 中的所有函数本质上都是方法吗?

javascript - 如何: correctly chain AngularJS async calls (AngularJs 1. 7.5)

angular - Protractor 元素链接对我不起作用

dart - 为什么删除我的 web/assets 文件夹也会删除 lib 中的所有源?

javascript - 我怎样才能让 WebStorm 相信我的用户脚本加载了 jQuery?