「Selenium」- 保持登录状态(保存 Cookie 信息)

  CREATED BY JENKINSBOT

解决方案

我们没有找到保存 Cookie 的专有方法,所以我们采用自己的方案:
1)将 Cookie 对象保存到文件,
2)在启动时,再载入 Cookie 对象

适用于 Java 语言的方法

将 Cookie 保存到文件:

private void cookieWriteToFile(WebDriver webDriver) throws Exception {
	ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("/path/to/cookie.bin"));
	objectOutputStream.writeObject(webDriver.manage().getCookies());
}

从文件中读取 Cookie:

private void cookieWriteToFile(WebDriver webDriver) throws Exception {
	ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("/path/to/cookie.bin"));
	Set<Cookie> cookies = (Set<Cookie>) objectInputStream.readObject();
	for (Cookie cookie : cookies) {
	    webDriver.manage().addCookie(cookie);
	}
}

该方法的本质是:保存二进制对象到文件,之后从文件恢复二进制对象

注意事项,该方法适用于 Java 语言,而 Groovy 语言存在其他问题。

适用于 Groovy 语言的方法

参考 Write an Object to File and Read it 笔记。

参考文献

Selenium Grid Tutorial: Hub & Node (with Example)
Selenium Java / API / Overview