删除缓存和Cookie

时间:2016-10-07 11:24:10

标签: selenium-webdriver

我有不同的登录角色。每个用户登录的菜单都不同。

我登录 user1 和Logout,然后继续进一步用户。

在每次登录时,我在启动网址之前使用deleteAllCookies()。但我面临会话被保留并直接登录最后登录的用户。

我尝试过以下组合。它不起作用。

public static WebDriver driver;

1. deleteAllCookies()

2. DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
       capabilities.setCapability(CapabilityType.SUPPORTS_APPLICATION_CACHE, false);
       driver = new InternetExplorerDriver(capabilities)

3.  DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();      
capabilities.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);  
        driver = new InternetExplorerDriver(capabilities)

如何避免这种情况?

2 个答案:

答案 0 :(得分:0)

我尝试过以下代码,它的工作原理是 deleteAllCookies()

WebDriver driver = null;
driver = new FirefoxDriver();
driver.get("http://stackoverflow.com/");

driver.findElement(By.xpath("html/body/div[3]/div/div[3]/div[1]/span/a[2]")).click();
Thread.sleep(1000);
driver.findElement(By.xpath("//*[@id='email']")).sendKeys(<Enter your email>);
driver.findElement(By.xpath("//*[@id='password']")).sendKeys(<Enter your password>);
Thread.sleep(1000);
driver.findElement(By.xpath("//*[@id='submit-button']")).click();

Thread.sleep(1000);
System.out.println("Get");
System.out.println(driver.manage().getCookies());
driver.manage().deleteAllCookies();
System.out.println("Delete");
System.out.println(driver.manage().getCookies());
driver.get("http://stackoverflow.com/");

答案 1 :(得分:0)

这对我来说很好。

 try {
                Runtime.getRuntime().exec("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255");
                    Thread.sleep(3000);
                } catch (IOException e) {
                    e.printStackTrace();
                }