import {browser, element, von, Von, $, $$, ExpectedConditions} aus 'Winkelmesser' Fehler
Habe ich installiert Winkelmesser, Typoskript, Jasmin mit Typ-Global und lokal.
Bekomme folgenden Fehler beim ausführen der test via npm installieren Sie bitte die Anleitung, wenn etwas falsch mit dem setup.
import {browser, element, by, By, $, $$, ExpectedConditions} from 'protractor';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at C:\MyFiles\NewTechonologies\Protractor\TypeScript\Test\node_modules\jasmine\lib\jasmine.js:93:5
[13:14:56] E/launcher - Process exited with error code 100
npm ERR! Test failed. See above for more details.
Unten sind die details der Dateien, die ich mit in visual studio-code -
Conf.ts
import {Config} from 'protractor';
export let config: Config = {
framework: 'jasmine',
capabilities: {
browserName: 'chrome'
},
specs: [ '../spec.ts' ],
onPrepare: () => {
let globals = require('protractor');
let browser = globals.browser;
browser.manage().window().maximize();
browser.manage().timeouts().implicitlyWait(5000);
//doing a browser.get will lead to a transpile error.
//undefined does not have a get method
},
seleniumAddress: 'http://localhost:4444/wd/hub',
//You could set no globals to true to avoid jQuery '$' and protractor '$'
//collisions on the global namespace.
noGlobals: true
};
spec.ts
import {browser, element, by, By, $, $$, ExpectedConditions} from 'protractor';
//import { ElementFinder, browser, by, element } from 'protractor';
import protractor = require('protractor');
describe('protractor with typescript typings', () => {
beforeEach(() => {
browser.get('http://www.angularjs.org');
});
it('should greet the named user', async() => {
setTimeout(function() {
//Whatever you want to do after the wait
}, 4000);
element(by.model('yourName')).sendKeys('Julie');
let greeting = element(by.binding('yourName'));
//expect(greeting.getText()).toEqual('Hello Julie!');
expect<any>(greeting.getText()).toEqual('Hello Julie!');
});
it('should list todos', function() {
let todoList = element.all(by.repeater('todo in todoList.todos'));
expect<any>(todoList.count()).toEqual(2);
expect<any>(todoList.get(1).getText()).toEqual('build an angular app');
});
});
Paket.json
{
"name": "example-typescript",
"version": "1.0.0",
"description": "a typescript example",
"author": "",
"license": "MIT",
"scripts": {
"tsc": "tsc",
"pretest": "npm run tsc",
"test": "protractor tmp/conf.js"
},
"dependencies": {
"@types/jasmine": "^2.5.47",
"@types/jasminewd2": "^2.0.0",
"jasmine": "^2.4.1",
"protractor": "file:../",
"typescript": "~2.1.6"
},
"devDependencies": {
"@types/jasmine": "^2.5.51",
"@types/jasminewd2": "^2.0.2",
"ts-node": "^3.0.2"
}
Was ist der Inhalt Ihrer
tsconfig.json
?
InformationsquelleAutor sunpat | 2017-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht über eine
tsconfig.json
erstellen. Um eine grundlegende, angesichts Ihrer Konfiguration, die Sie tun können:Bearbeiten Sie die
module
undtarget
Eigenschaften und stellen Sie sicher, Sie sindcommonjs
undes5
beziehungsweise. Der Fehler, den Sie haben, ist aufgrund der Tatsache, dass ES6-Module sind noch nicht unterstützt, die von Knoten. Damit Knoten Fehler beim Parsen derimport
token.Hier ist ein Beispiel von
tsconfig.json
dass sollte auch bei dir funktionieren:Das ist normal, es ist wahrscheinlich, weil Ihre
lib
fahne fehlen ein paar Dinge. Typischer Wert wäre["dom", "es2015"]
. Wenn Sie mehr erfahren möchten über die möglichen Werte gehen haben einen Blick hierIch habe gerade aktualisiert meine Antwort mit einem Beispiel für die tsconfig, löst Ihre ungelösten "Versprechen" Fehler.
Tut mir Leid für die Verwirrung. Was ich gemeint habe, durch das löschen der tmp-Ordner war: tsc erstellen, die Ordner achten Sie beim kompilieren Ihrer Anwendung, aber wenn nichts erzeugt wird, die in der tmp-Ordner (aus irgendeinem seltsamen Grund), dann, wenn Sie Sie ausführen
protactor tmp/conf.js
wäre es stattdessen beschwert sich über eine fehlende conf.js. Von dem, was Sie beschrieben haben, wie es aussieht, dein problem ist, dass protactor nicht mit Ihr kompiliert spec.js Datei, aber deine Skillung.ts-Datei. Eigentlich migh. Versuchen Sie ersetzen, in Conf.ts die Zeile../spec.ts
mit./spec.js
.Beachten Sie, dass ich sagte
./spec.js
weil ich erwarte, dass Ihrtmp
Ordner, der die Dateien enthält, erzeugt durch typescript als dem gleichen Niveau. SoConf.js
undspec.js
sind im gleichen Ordner. Wenn das nicht der Fall, würden Sie brauchen, um zu ersetzen./
mit was auch immer Karte, um Ihre Ordner-Struktur.InformationsquelleAutor Nemikolh
Als pro die Kommentar-Diskussionen, habe ich das geändert conf.ts-Gehalt ../spec.ts zu spec.js und fein gearbeitet
conf.ts
InformationsquelleAutor sunpat