Jak wyczyścić pamięć podręczną przeglądarki przed każdym uruchomieniem testowym? Próbowałem z driver.manage().deleteAllCookies();
w metodzie setUp
po utworzeniu instancji sterownika, działa dla firefox, ale dla IE nie używać. Czy istnieje rozwiązanie dla IE podaj mi ..Jak automatycznie wyczyścić pamięć podręczną przeglądarki w Selenium WebDriver?
Odpowiedz
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.
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();
}
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).
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
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
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);
Powyższy kod jest usunięcie plików cookie , nie czyści pamięci podręcznej. – Ardesco