2011-09-14 81 views
5

Selenium中有一個.delete_all_visible_cookies方法。我驚訝地發現Webdriver中的.delete_all_cookies是私有API的一部分,因此無法通過@driver實例訪問。刪除Webdriver中的cookies

這對IE來說是一個問題,因爲它不會像FF那樣在新的測試運行中啓動乾淨的瀏覽器。

回答

5

據我所知,你必須選擇:

  • 當創建IE實例使用的功能參數:

    DesiredCapabilities帽= DesiredCapabilities.internetExplorer(); caps.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION,true); WebDriver驅動程序=新InternetExplorerDriver(caps);

  • 一旦被初始化,您可以使用:

    driver.manage()deleteAllCookies()

+1

似乎是一個溶液刪除緩存。尋找一個Ruby的等價物。 – Yulia

+0

根據這個,你可以做相當於Ruby的功能 - > http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver.html – jasalguero

+0

我仍然無法找到解。可用的功能是http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Remote/Capabilities.html。沒有clean_session或clear_cookies或類似的顯示。我迷路了......我相信很多開發者都面臨這個問題。你如何解決它? – Yulia

3

不幸的是,我是不是能夠通過webdriver的手段來解決這個問題。最後,我所做的只是在運行測試之前從命令行中刪除cookie。該生產線是

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 
+2

憎恨IE的另一個原因...... – craastad

0

這部分代碼創建一個選擇對象,並設置清潔會話屬性爲true,並且通過它,而創建一個驅動程序實例資源管理器的驅動程序。適用於我。

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

一般而言,您應該在答案本身中包含您的代碼的解釋,而不是在評論中。 –

0

IN IEDRIVER 2.53.1 該IE可以通過使用

capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);