我正在使用Selenium Web Driver API和Java。每当我运行Web Driver时,它会自动创建一个tmp Firefox Profile并执行与tmp配置文件相关的所有驱动程序相关代码。
我的问题不在于此问题中创建的额外空间:How to stop Selenium from creating temporary Firefox Profiles using Web Driver?我知道我可以调用driver.quit来清除tmp配置文件使用的资源。
相反,我的问题是我想使用永久性Firefox配置文件,以便下次启动此FF配置文件时,我会继承之前配置文件的所有cookie和缓存。我知道我每次都可以手动保存和添加cookie,但这很乏味。
那么,有没有办法强制Firefox不创建tmp配置文件并启动Firefox,就好像我正在使用永久配置文件正常浏览一样?我只是想让它像正常用户一样浏览。
谢谢
答案 0 :(得分:-1)
通常Selenium不支持跨会话cookie。
最简单的方法是使用序列化。 您需要围绕selenium的cookie创建包装类并使其可序列化。并创建类CookiesManager,其中将有2个方法:SaveSession() - 保存和RestoreSession() - 从序列化文件恢复。
另一种方法是将一些cookie信息保存到某些临时cookie文件中。喜欢.... Csv或XML。 您可以在此处看到这种方式的示例:Keep user logged in - save cookies using web driver 但仅适用于c#。
使用特定的个人资料:
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("profileToolsQA");
WebDriver driver = new FirefoxDriver(myprofile);
为firefox创建一些额外的配置文件,您需要通过以下方式运行firefox配置文件管理器:firefox.exe -p