Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/session/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 如何使用WebDriver重新启动firefox浏览器,同时保留以前的会话id_Session_Selenium_Relaunch - Fatal编程技术网

Session 如何使用WebDriver重新启动firefox浏览器,同时保留以前的会话id

Session 如何使用WebDriver重新启动firefox浏览器,同时保留以前的会话id,session,selenium,relaunch,Session,Selenium,Relaunch,我的应用程序中存在一个无法注销的错误。我需要在使用WebDriver的Java自动化中解决这个问题。解决方法是关闭浏览器并重新打开,然后打开登录页面 要使此解决方案自动化,我尝试了以下方法: browserDriver.quit(); browserDriver = new FirefoxDriver(capabilities); browserDriver.get(loginPageURL); 这将返回一个新的会话id。是否有方法保留上一个会话id并将其设置回原来的会

我的应用程序中存在一个无法注销的错误。我需要在使用WebDriver的Java自动化中解决这个问题。解决方法是关闭浏览器并重新打开,然后打开登录页面

要使此解决方案自动化,我尝试了以下方法:

browserDriver.quit();            
browserDriver = new FirefoxDriver(capabilities);
browserDriver.get(loginPageURL);
这将返回一个新的会话id。是否有方法保留上一个会话id并将其设置回原来的会话id。我可以使用

((RemoteWebDriver)browserDriver).getSessionId();
我还尝试使用以下代码删除当前域的所有cookie,但用户仍然登录

browserDriver.manage().deleteAllCookies();
browserDriver.navigate().refresh();
browserDriver.get(loginPageURL);

感谢您的帮助。

据我所知,在对驱动程序调用quit()方法后,它将不会保留上一个会话id

无论如何,请尝试通过禁用特定firefox配置文件中的缓存来启动浏览器

FirefoxProfile profile = new ProfilesIni().getProfile(profilePath);
profile.setPreference("browser.cache.disk.enable", false);
profile.setPreference("browser.cache.memory.enable", false);
profile.setPreference("browser.cache.offline.enable", false);
profile.setPreference("network.http.use-cache", false);

DesiredCapabilities dc = DesiredCapabilities.firefox(); 
dc.setCapability(FirefoxDriver.PROFILE, profile); 

driver = new FirefoxDriver(dc);
driver.get(url);
Firefox配置文件创建==>

编辑-I 更改该配置文件中的以下设置

在“about:config”中,您可以将“Browser.sessionstore.enabled”设置为false,在这种情况下,firefox将不会在关闭浏览会话后恢复您的浏览会话。

当您使用

driver.quit(); 

Selenium始终启动新会话。这意味着它总是引导您进入“登录”页面。 只需使用下面的代码,无需设置功能

browserDriver.quit();                                    
browserDriver.get(loginPageURL); 
您将看到登录页面

browserDriver.quit();                                    
browserDriver.get(loginPageURL);