Wie lösche ich den Browser-Cache vor jedem Testlauf? Ich versuchte mit driver.manage().deleteAllCookies();
in setUp
Methode nach dem Erstellen der Treiber-Instanz, es funktioniert für Firefox, aber für IE keine Verwendung. Gibt es eine Lösung für IE mir bitte geben ..So löschen Sie den Browser-Cache automatisch in Selenium WebDriver?
Antwort
Java verwenden Sie das erreichen können:
protected void deleteCookie(String cookieName) {
String cookieDomain = CTPropertiesManager.getProperty("site.properties", "site.cookie.domain");
try {
//get all cookies
Cookie cookies[] = request.getCookies();
Cookie ctCookie=null;
if (cookies !=null) {
for(int i=0; i<cookies.length; i++) {
ctCookie=cookies[i];
if (ctCookie.getName().trim().equals(cookieName)) {
if (cookieDomain != null) {
ctCookie.setDomain(cookieDomain);
}
ctCookie.setPath("/ct");
ctCookie.setMaxAge(0);
response.addCookie(ctCookie);
}
} //end for
}//end if cookie
} catch(Exception e) {
CTLogManager.log(e);
}
}//end deleteCookie()
zum Löschen Cache Sie eine BAT-Datei erstellen können, die Ihr Browser oder Anwendungs-Cache vor Testbeginn löschen. Nach dem Erstellen der Fledermausdatei rufen Sie Ihren Code vor dem Teststart einfach auf.
den Code unten verwenden Cache in IE löschen
try {
Runtime.getRuntime().exec("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");
} catch (IOException e) {
e.printStackTrace();
}
diesen Beitrag verwenden, How To: Execute command line in C#, get STD OUT results kam ich mit diesem C# -Code auf Cookies zu löschen (und als Nebeneffekt löscht sie alle Browser-Daten IE).
public static void DeleteIECookiesAndData()
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "RunDll32.exe";
p.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 2";
p.Start();
p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
Es ist überhaupt nicht hübsch, aber es funktioniert. Vielleicht könnten einige Stücke entfernt werden. (Bitte lassen Sie mich wissen, wenn Sie einen besseren Weg finden, dies zu tun).
Es gibt eine Treiberfähigkeit kann eingestellt werden, wie folgt:
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
Es ist für mich auf IE11 gearbeitet.
Quelle: http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html
Wenn Sie einen Winkelmesser verwenden, kann dies mit 'ie.ensureCleanSession' auf den Fähigkeiten-Hash gesetzt werden: 'true' - siehe https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities – emery
IE Browser löscht den Cache für jedes Element nach jeder Seite zu laden
ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);
Diese Sitzung aufzuzuräumen tun:
ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
Der obige Code wird das Löschen von Cookies Cache wird nicht gelöscht. – Ardesco