2011-09-14 11 views
5

C'è un metodo .delete_all_visible_cookies in selenio. Sono stato sorpreso di scoprire che .delete_all_cookies in Webdriver è una parte dell'API privata quindi non è accessibile tramite l'istanza @driver.Elimina cookie in Webdriver

È un problema per IE poiché non avvia un browser pulito in una nuova esecuzione di test come FF.

risposta

5

Da quello che si sa devono opzioni:

  • Quando si crea l'IE uso istanza funzionalità argomento:

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

  • Una volta inizializzato, è possibile utilizzare:.

    driver.manage() deleteAllCookies()

+1

sembra una soluzione. Alla ricerca di un equivalente Ruby di esso. – Yulia

+0

In base a questo si può fare l'equivalente con funzionalità per Ruby -> http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver.html – jasalguero

+0

Ancora non riesco a trovare un soluzione. Le funzionalità disponibili sono quelle qui http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Remote/Capabilities.html. dove non c'è clean_session o clear_cookies o simili visualizzati. Mi sto perdendo ... Sono sicuro che molti sviluppatori affrontano questo problema. Come lo affronta? – Yulia

3

Purtroppo, non ero in grado di risolvere questo problema per mezzo di WebDriver . Infine, quello che faccio è semplicemente eliminare i cookie dalla riga di comando prima di eseguire i test. La linea è

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 
+2

un altro motivo per odiare IE ... – craastad

0

Questa parte del codice di creare un oggetto opzione e imposta Clean Sessione proprietà su true e lo passa a Explorer conducente durante la creazione di un'istanza del driver. Per me va bene.

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

In generale, è necessario includere la spiegazione del codice nella risposta stessa, piuttosto che nei commenti. –

0

IN IEDRIVER 2.53.1 L'IE può eliminare la cache utilizzando

capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true); 
Problemi correlati