Ich versuche, einen einfachen UI-Test mit Jasmine und Selen-Webdriver zu schreiben.selen webdriver funktioniert nicht mit Jasmin
Allerdings kann ich es nicht funktionieren. Im Folgenden sind die Umgebung Ich verwende:
- Knoten v6.6.0
- [email protected] (als globales Modul installiert ist)
- [email protected] -3
- ChromeDriver 2.25.426935 (in/usr/local/bin) (in node_modules installiert)
- Neueste Google Chrom (Version 54.0.2840.71 (64-bit))
- Mac OS X 10.11.6 (El Capitan)
Der Code ist ziemlich einfach (in Typoskript):
import * as webdriver from 'selenium-webdriver';
let by = webdriver.By;
let until = webdriver.until;
describe("my suite",() => {
beforeEach(() => {
})
afterEach(() => {
})
it("should work",() => {
console.log("==========>");
let driver = new webdriver.Builder()
.forBrowser("chrome")
.build();
driver.get("https://www.google.com")
.then(s => {
return driver.getTitle();
})
.then(title => { console.log(title) })
console.log("<==========");
})
});
Der erzeugte JS-Code:
"use strict";
var webdriver = require('selenium-webdriver');
var by = webdriver.By;
var until = webdriver.until;
describe("my suite", function() {
beforeEach(function() {
});
afterEach(function() {
});
it("should work", function() {
console.log("==========>");
var driver = new webdriver.Builder()
.forBrowser("chrome")
.build();
driver.get("https://www.google.com")
.then(function (s) {
return driver.getTitle();
})
.then(function (title) { console.log(title); });
console.log("<==========");
});
});
Der gleiche Code kann ohne Probleme als eigenständige JS ausgeführt werden (mit Knoten):
"use strict";
var webdriver = require('selenium-webdriver');
var by = webdriver.By;
var until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser("chrome")
.build();
driver.get("https://www.google.com").then(function (s) {
return driver.getTitle();
})
.then(function (title) { console.log(title); });
driver.quit();
Ich weiß nicht, ob es irgendeine Konfiguration erforderlich für Jasmin mit Selen zu arbeiten. Bitte helfen Sie.
Das Verschieben der Webdriver-Initialisierung auf "beforeEach" hilft nicht. Wenn ich den Code arbeiten lassen kann, verschiebe ich ihn auf "beforeEach" und beende ihn in "afterEach".
Nun druckt es keinen Fehler für Sie? Oder der von Typoskript generierte Code funktioniert nicht? – pagep
Ich habe es tatsächlich herausgefunden. Da selen-webdriver asynchrone Operationen sind, muss ich asynchrone Aromen von Jasmin/Mocha-APIs verwenden. –