PhantomJS und Selenium Webdriver - So löschen Sie die Sitzung

8

Ich verwende Selenium Webdriver (Java) und PhantomJS, um eine komplexe JS-gesteuerte Website zu testen. Mein Problem ist, dass der PhantomJS Browser die Sitzung zwischen zwei Tests hält, was zu Fehlern in der Testkonfiguration führt.

Wenn ich die Tests mit Firefox durchführe, funktioniert alles gut, weil Firefox für jeden Testfall eine saubere Sitzung verwendet.

Mein erster Versuch, das Problem zu lösen, bestand darin, den lokalen Speicher einfach durch JS-Injektion zu löschen. Cookies werden vom Selen exposed API driver.manage().deleteAllCookies();

gelöscht

Aber das Ausführen von JavaScript ohne den Besuch einer Seite ist nicht erlaubt. Das Starten des Browsers bei "about: blank" führt zu einem Fehler.

Also, wie konfiguriere ich meinen Phantomjs-Webtreiber, um die Sitzung zu löschen?

Ich benutze phantomjs und webdriver, weil die Selen-Grid-Dienste nicht stabil genug waren. Also starte ich meine phantomjs-Instanz so:

%Vor%     
schlingel 03.04.2014, 09:13
quelle

3 Antworten

7

Die Tatsache, dass PhantomJS Sitzungen zwischen Tests hält, ist ein bekanntes Problem in GhostDriver, der Selenium Webdriver-Implementierung in PhantomJS .

Ich nehme an, dass dieses Problem mit der PhantomJS 2 Version behoben wird. Der Fehler ist bereits in GhostDriver 1.1.1 behoben, aber es gibt keine PhantomJS-Version, die diese GhostDriver-Version enthält.

    
oberlies 15.05.2014 14:08
quelle
2

Ich weiß, dass Selenium Grid eine "cleanSession" -Option hat, wenn Sie GhostDriver verwenden. Außerdem bin ich mir ziemlich sicher, dass die reguläre WebDriver-Klasse eine Option dafür auf einer lokalen WebDriver-Instanz hat:

%Vor%     
djangofan 03.04.2014 14:46
quelle
0

Die Version 2.0 von PhantomJS behebt dieses Problem. Wenn Sie ein Linux-Enviroment haben, müssen Sie die Quellen klonen und wie folgt kompilieren:

%Vor%

Weitere Informationen hier

    
Giuseppe Lopes 15.07.2015 18:00
quelle