Comment effacer le cache du navigateur avant chaque test? J'ai essayé avec driver.manage().deleteAllCookies();
dans la méthode setUp
après la création de l'instance de pilote, cela fonctionne pour firefox, mais pour IE aucune utilisation. Y at-il une solution pour IE s'il vous plaît me fournir ..
Il existe une fonctionnalité de pilote que vous pouvez définir comme suit:
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
Cela a fonctionné pour moi sur IE11.
Source: http://Selenium.googlecode.com/git/docs/api/Java/org/openqa/Selenium/ie/InternetExplorerDriver.html
Utilisez le code ci-dessous pour vider le cache dans IE
try {
Runtime.getRuntime().exec("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");
} catch (IOException e) {
e.printStackTrace();
}
Le navigateur IE efface le cache de chaque élément après chaque chargement de page
ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);
Cela fera le nettoyage de la session:
ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
En utilisant ce post, Comment: exécuter la ligne de commande en C #, obtenir les résultats STD OUT , je suis arrivé avec ce code C # pour supprimer les cookies (et comme effet secondaire, il supprime toutes les données du navigateur 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();
}
Ce n'est pas beau du tout, mais ça marche. Peut-être que certaines pièces pourraient être enlevées. (s'il vous plaît laissez-moi savoir si vous trouvez un meilleur moyen de le faire).
En utilisant Java, vous pouvez réaliser cela:
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()
Pour supprimer le cacheVous pouvez créer un fichier bat qui efface le cache de votre navigateur ou de vos applications avant le début du test. après avoir créé le fichier chauve-souris, appelez simplement votre code avant le début du test.