Webdriver.io stürzt mit NoSessionIdError ab
Ich versuche, webdriver.io und Jasmine zum Laufen zu bringen.
FolgenIhr Beispiel, mein Skript ist beitest/specs/first/test2.js
(entsprechend der Konfiguration) und enthält:
var webdriverio = require('webdriverio');
describe('my webdriverio tests', function() {
var client = {};
jasmine.DEFAULT_TIMEOUT_INTERVAL = 9999999;
beforeEach(function() {
client = webdriverio.remote({ desiredCapabilities: {browserName: 'firefox'} });
client.init();
});
it('test it', function(done) {
client
.url("http://localhost:3000/")
.waitForVisible("h2.btn.btn-primary")
.click("h2.btn.btn-primary")
.waitForVisible("h2.btn.btn-primary")
.call(done);
});
afterEach(function(done) {
client.end(done);
});
});
Ich verwende wdio als Testläufer und richte es mit dem interaktiven Setup ein. Diese Konfiguration wird automatisch generiert und ist ziemlich einfach, sodass ich keine Notwendigkeit sehe, sie zu posten.
In einem anderen Terminalfenster starte ich selenium-server-andalone-2.47.1.jar mit Java 7. Ich habe Firefox auf meinem Computer installiert (es startet leer, wenn der Test ausgeführt wird), und auf meinem Computer wird OS 10.10 ausgeführt .5.
Das passiert, wenn ich den Testläufer starte:
$ wdio wdio.conf.js
=======================================================================================
Selenium 2.0/webdriver protocol bindings implementation with helper commands in nodejs.
For a complete list of commands, visit http://webdriver.io/docs.html.
=======================================================================================
[18:17:22]: SET SESSION ID 46731149-79aa-412e-b9b5-3d32e75dbc8d
[18:17:22]: RESULT {"platform":"MAC","javascriptEnabled":true,"acceptSslCerts":true,"browserName":"firefox","rotatable":false,"locationContextEnabled":true,"webdriver.remote.sessionid":"46731149-79aa-412e-b9b5-3d32e75dbc8d","version":"40.0.3","databaseEnabled":true,"cssSelectorsEnabled":true,"handlesAlerts":true,"webStorageEnabled":true,"nativeEvents":false,"applicationCacheEnabled":true,"takesScreenshot":true}
NoSessionIdError: A session id is required for this command but wasn't found in the response payload
at waitForVisible("h2.btn.btn-primary") - test2.js:21:14
/usr/local/lib/node_modules/webdriverio/node_modules/q/q.js:141
throw e;
^
NoSessionIdError: A session id is required for this command but wasn't found in the response payload
0 passing (3.90s)
$
Ich finde das sehr seltsam und unerklärlich, besonders wenn man bedenkt, dass es sogar die Sitzungs-ID ausgibt.
Irgendwelche Ideen