2013-05-09 6 views

Odpowiedz

0

użyciu języka Java można osiągnąć, że:

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

Do usuwania cache Można utworzyć jeden plik bat który wyczyścić pamięć podręczną przeglądarki lub aplikacji przed rozpoczęciem testu. po utworzeniu pliku nietoperza po prostu wywołaj swój kod przed rozpoczęciem testu.

+2

Powyższy kod jest usunięcie plików cookie , nie czyści pamięci podręcznej. – Ardesco

3

Użyj poniższego kodu, aby wyczyścić pamięć podręczną w IE

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

@ user1441341 Czy mógłbyś powiedzieć, czy to zadziałało? – praneel

+0

Pracował dla mnie w C#, zobacz moją odpowiedź. – craastad

+0

Nie działa dla mnie przy użyciu IE11. – cnmuc

1

Stosując ten post, How To: Execute command line in C#, get STD OUT results, wymyśliłem ten kod C#, aby usunąć pliki cookie (i jako efekt uboczny usuwa wszystkie dane przeglądarki 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(); 
} 

To nie jest wcale ładne, ale działa. Może niektóre kawałki można usunąć. (proszę dać mi znać, jeśli znajdziesz lepszy sposób na zrobienie tego).

11

Istnieje możliwość sterownik można ustawić w następujący sposób:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); 

on pracował dla mnie na IE11.

Źródło: http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html

+0

Jeśli używasz kątomierza, można go ustawić na wartości mieszania funkcji z "ie.ensureCleanSession": "prawda" - patrz https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities – emery

1

IE Browser czyści pamięć podręczną dla każdego elementu po każdej stronie obciążenia

ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true); 

Będzie to zrobić sesję oczyścić:

ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);