2013-05-09 8 views

Antwort

0

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.

+2

Der obige Code wird das Löschen von Cookies Cache wird nicht gelöscht. – Ardesco

3

den Code unten verwenden Cache in IE löschen

try { 
    Runtime.getRuntime().exec("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

@ user1441341 Könnten Sie bitte kommentieren, wenn das funktioniert? – praneel

+0

Arbeitete für mich in C#, siehe meine Antwort. – craastad

+0

Funktioniert nicht für mich mit IE11. – cnmuc

1

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).

11

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

+0

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

1

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);