Ich verwende Selenium IDE, um eine Webanwendung zu testen. Manchmal sind meine Tests erfolgreich, obwohl sie fehlgeschlagen sein sollten. Der Grund dafür ist, dass der Browser zufällig eine vorherige Version einer Seite aus dem Cache lädt, anstatt die neuere Version dieser Seite zu laden. Mit anderen Worten, ich könnte einen Fehler in meine App einführen, ohne dass ich davon weiß, weil die Tests nach dem Laden einer früheren funktionierenden Version bestanden haben, anstatt die neue fehlerhafte Version zu laden.
Die beste Lösung, an die ich denken könnte, ist, den Browser-Cache vor dem Ausführen der Tests zu löschen. Ich habe ein Selenium-Skript, in dem ich vor dem Ausführen der Tests Selen-Setup-Befehle ausführen. Gibt es einen Selen-Befehl, um den Firefox-Cache zu löschen? Gibt es alternativ eine andere Möglichkeit zu verhindern, Seiten während der Tests aus dem Cache zu laden?
Disclaimer: Ich musste das vorher noch nie machen (das Löschen der Cookies war immer ausreichend für mich), aber von dem, was ich sehen kann, ist dies eine Funktionalität, die in den aktuellen Builds von Selenium fehlt, wenn auch aus den letzten Änderungsprotokollen sieht es so aus, als ob die Entwickler einen Push machen, um eine Standardmethode dafür zu machen. In 2.33
von iedriverserver
, Sie haben den folgenden Änderungshinweis:
Einführung der Fähigkeit, den Browser-Cache vor dem Start von IE zu säubern. Diese Version führt die ie.ensureCleanSession - Fähigkeit ein, die den Browser-Cache, Verlauf und Cookies vor dem Start von IE. Wenn Sie dies verwenden Beachten Sie, dass dies den Cache für alle laufenden Instanzen von Internet Explorer. Verwenden Sie diese Fähigkeit beim Versuch, mehrere auszuführen Instanzen des IE-Treibers können zu unerwartetem Verhalten führen. Beachten Sie dies auch führt zu einem Leistungsabfall beim Starten des Browsers, wie es der Treiber tut Warten Sie, bis der Cache-Löschvorgang abgeschlossen ist, bevor Sie ihn tatsächlich starten IE
Um dies zu tun, würden Sie dies bei der Erstellungszeit des Treibers in der DesiredCapabilities
Map mit ensureCleanSession
angeben.
Da du Firefox verwendest, sieht es so aus, als hättest du kein Glück, eine native Methode zu benutzen. Wenn du driver.manage().deleteAllCookies();
noch nicht ausprobiert hast, würde ich versuchen, zu sehen, ob es dich dorthin bringt, wo du sein musst.