2011-09-14 21 views
5

Hay un método .delete_all_visible_cookies en Selenium. Me sorprendió descubrir que .delete_all_cookies en Webdriver es una parte de la API privada, por lo que no se puede acceder a través de la instancia @driver.Eliminar cookies en Webdriver

Es un problema para IE ya que no inicia un navegador limpio en una nueva ejecución de prueba como FF.

Respuesta

5

Por lo que sé que tienen dos opciones:

  • Al crear el IE capacidades de uso de ejemplo argumento:

    DesiredCapabilities tapas = DesiredCapabilities.internetExplorer(); caps.setCapability (CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true); WebDriver driver = new InternetExplorerDriver (caps);

  • Una vez inicializado, puede utilizar:.

    driver.manage()() deleteAllCookies

+1

parece una solución. Buscando un equivalente Ruby de ella. – Yulia

+0

De acuerdo con esto, puede hacer el equivalente con capacidades para Ruby -> http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver.html – jasalguero

+0

Todavía no puedo encontrar un solución. Las capacidades disponibles son las aquí http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Remote/Capabilities.html. donde no se muestra clean_session o clear_cookies o similar. Me estoy perdiendo ... Estoy seguro de que muchos desarrolladores se enfrentan a este problema. ¿Cómo lo enfrentas? – Yulia

3

Por desgracia, yo no era capaz de resolver este problema por medio de WebDriver . Finalmente, lo que hago es simplemente eliminar las cookies de la línea de comando antes de ejecutar las pruebas. La línea es

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 
+2

otra razón para odiar IE ... – craastad

0

Esta parte del código crea un objeto de opción y establece la Propiedad de sesión limpia en verdadero y la pasa al controlador Explorer al crear una instancia de controlador. Funciona para mi.

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.EnsureCleanSession = true; 
return new InternetExplorerDriver(Config.IEDriverPath, options); 
+0

En general, debe incluir la explicación de su código en la respuesta misma, en lugar de en los comentarios. –

0

EN IEDRIVER 2.53.1 La IE puede borrar la memoria caché mediante el uso de

capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true); 
Cuestiones relacionadas