我应该向package.json
添加什么并在每个e2e.spec.ts
文件中导入才有可能?
目前,当我将e2e.spec.js
更改为e2e.spec.ts
时,文件已编译,我发送错误Cannot find name 'browser'
等。
我试过
import {browser, element, by} from 'protractor';
但是在编译过程中我遇到了错误
node_modules/protractor/built/browser.d.ts(1,1): error TS1084:
Invalid 'reference' directive syntax.
我的package.json
(仅限重要部分)
{
"scripts": {
"lite": "lite-server",
"tsc": "tsc",
"typings": "typings",
"pree2e": "npm run webdriver:update",
"webdriver:update": "webdriver-manager update"
},
"dependencies": {
"@angular/common": "~2.0.1",
"@angular/compiler": "~2.0.1",
"@angular/core": "~2.0.1",
"@angular/forms": "~2.0.1",
"@angular/http": "~2.0.1",
"@angular/platform-browser": "~2.0.1",
"@angular/platform-browser-dynamic": "~2.0.1",
"@angular/router": "~3.0.1",
"@angular/upgrade": "~2.0.1",
"angular2-in-memory-web-api": "0.0.20",
"core-js": "^2.4.1",
"reflect-metadata": "^0.1.8",
"rxjs": "5.0.0-beta.12",
"systemjs": "0.19.39",
"zone.js": "^0.6.25"
},
"devDependencies": {
"canonical-path": "0.0.2",
"concurrently": "^3.0.0",
"jasmine": "^2.5.2",
"jasmine-fail-fast": "^2.0.0",
"karma": "^1.3.0",
"karma-chrome-launcher": "^2.0.0",
"karma-jasmine": "^1.0.2",
"lite-server": "^2.2.2",
"protractor": "^4.0.8",
"protractor-jasmine2-screenshot-reporter": "^0.3.2",
"typescript": "^1.8.10",
"typings": "^1.4.0"
}
}
和样本测试套件
// import {browser, element, by} from 'protractor';
describe('Test suite related with health tab', () => {
beforeEach(function () {
browser.get('');
});
}
答案 0 :(得分:2)
自Protractor 4.0.5起,他们使用TypeScript 2.0.x.我刚刚升级了我的项目以使用它们,并且需要一些工作 - 例如,你不再需要打字(尽管我认为你仍然可以使用它)。使用您拥有的量角器导入。当我这样做时,我得到了你在建造时的错误。我正在使用Visual Studio 2015 Pro - 我一直在使用TypeScript 1.8.3扩展。我将此更改为TypeScript 2.0.3(我的项目正在使用),并且构建错误消失了。
如果您想将打字转换为@types,这可能会有所帮助 TypeScript typings in NPM @types org packages
答案 1 :(得分:0)
我必须将typescript
升级为> = 2.0.0并将protractor
降级为3.3。然后我不必向e2e-spec.ts
添加任何导入。