如何实现使用Web驱动程序记住我在Firefox中的自动化?

时间:2012-07-11 11:38:59

标签: webdriver

如何使用网络驱动程序在Firefox中实现“记住我”自动化?我正在使用webdriver 2.20,Eclipse IDE,Firefox 9.0

2 个答案:

答案 0 :(得分:0)

您遇到这种情况的原因是因为每次启动firefox时,webdriver都会创建一个没有cookie的新匿名配置文件。您可以使用特定的配置文件,该配置文件应保留cookie。

File profileDir = new File("path/to/profile");
FirefoxProfile profile = new FirefoxProfile(profileDir);
WebDriver driver = new FirefoxDriver(profile);

FirefoxProfile还有许多其他选项,例如添加扩展程序和所有选项。

答案 1 :(得分:0)

我知道你需要一个firefox的解决方案,但我有Chrome的以下工作版本。您可以参考此链接获取firefox解决方案:How to start Selenium RemoteWebDriver or WebDriver without clearing cookies or cache?

对于Chrome(配置):您必须设置user-dir的路径,这将在您首次登录后保存所有登录信息。下次再次登录时,将从user-dir获取登录信息。

System.setProperty("webdriver.chrome.driver", "res/chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("start-maximized");
options.addArguments("user-data-dir=D:/temp/");
capabilities.setCapability("chrome.binary","res/chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY,options);
WebDriver driver = new ChromeDriver(capabilities);

第一次登录:

driver.get("https://gmail.com");
//Your login script typing username password, check 'keep me signed in' and so on

关闭驱动程序(不要退出):

driver.close(); 

重新初始化驱动程序并导航到该站点。不应再次要求您输入用户名和密码:

driver = new ChromeDriver(capabilities);
driver.get("http://gmail.com");

使用firefox配置文件可以为firefox实现上述功能。