Node.js 由于导入量角器,加载config.ts失败

Node.js 由于导入量角器,加载config.ts失败,node.js,typescript,selenium,protractor,automated-tests,Node.js,Typescript,Selenium,Protractor,Automated Tests,我正试图开始一个新的量角器项目,以测试一个角度的网站。我安装了node.js、typescript、全局量角器和jasmine。我转到项目文件夹并执行webdriver管理器更新。然后我执行webdriver管理器启动。我还使用tsc config.ts构建config.ts。一切正常,直到我尝试量角器配置.ts。这里我将提供config.ts和package.json { "name": "protractortests", "version": "1.0.0", "description":

我正试图开始一个新的量角器项目,以测试一个角度的网站。我安装了node.js、typescript、全局量角器和jasmine。我转到项目文件夹并执行
webdriver管理器更新
。然后我执行
webdriver管理器启动
。我还使用
tsc config.ts
构建config.ts。一切正常,直到我尝试
量角器配置.ts
。这里我将提供config.ts和package.json

{
"name": "protractortests",
"version": "1.0.0",
"description": "Automated tests for a game platform",
"main": "index.js",
"dependencies": {
  "@types/jasmine": "^3.3.12",
  "@types/node": "^12.0.2",
  "jasmine": "^3.4.0",
  "protractor": "^5.4.2"
},
"devDependencies": {},
"scripts": {
  "test": "protractor config.ts"
}
和my config.ts:

import { ProtractorBrowser, Config } from "protractor";
    export let config: Config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
        'browserName': 'chrome'
        },

      framework: 'jasmine',
      specs: ['./FirstSpec.ts'],
      jasmineNodeOpts: {
        defaultTimeoutInterval: 90000
      },
      onPrepare: () => {
       let globals = require('protractor/built');
       let browser = globals.browser;
       browser.manage().window().maximize();
       browser.manage().timeouts().implicitlyWait(5000);
     }
    }

参考链接中的示例


您不需要导入量角器浏览器。您可以使用对象浏览器直接使用浏览器。

评论员指出,您不能以原生类型脚本为量角器提供配置文件,需要将其编译为
config.js
,然后传递该文件。用Typescript编写文件实际上毫无意义,它只是增加了一个额外的步骤,对您没有任何价值。如果希望编辑器自动完成,可以使用类型注释装饰JS:

const{join}=require(“路径”);
const{register}=require(“ts节点”);
const{SpecReporter,StacktraceOption}=require(“jasmine spec reporter”);
/**@type{import(“progrator”).Config}*/
常量配置={
directConnect:没错,
基本URL:“http://localhost:8080",
框架:“茉莉花”,
noGlobals:是的,
规格:[“/src/***.e2e.ts”],
onPrepare(){
登记册({
项目:join(uu dirname,“./tsconfig.json”)
});
jasmine.getEnv().addReporter(新SpecReporter({
规格:{
displayStacktrace:StacktraceOption.PRETTY
}
}));
}
};
module.exports={config};

我从中修改了配置。

尝试从“量角器”中删除
import{grandorbrowser,config}
当量角器初始化Cant删除它时,这些导入会自动发生,因为它后来用于导出配置:ConfigOh my Error,使用typescript时可能需要导入。我会删除
量角器浏览器
,但这似乎不是必需的,但仍然是相同的错误:(在尝试执行之前,您是否使用
npm run tsc
传输代码?如果不需要,请尝试一下
E/configParser - Error code: 105
[11:40:53] E/configParser - Error message: failed loading configuration file config.ts
[11:40:53] E/configParser - C:\Users\Victor\Documents\ProtractorTests\config.ts:1
(function (exports, require, module, __filename, __dirname) { import { ProtractorBrowser, Config } from "protractor";
                                                                     ^

SyntaxError: Unexpected token {
    at new Script (vm.js:80:7)
    at createScript (vm.js:274:10)
    at Object.runInThisContext (vm.js:326:10)
    at Module._compile (internal/modules/cjs/loader.js:664:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
npm ERR! Test failed.  See above for more details.