您不需要使用插件来获取所有 cookie(包括 httpOnly 和安全 cookie)。如果您使用 ChromeDriver,则可以从浏览器配置文件文件夹中获取所有 cookie。
它们存储在 ./profile/Default/Cookies 中的 sqlite 数据库文件中
java/selenium 的示例:
//set Browsers profile folder with ChromeOptions:
String intendedProfileDestinationPath = "C:/temp/somefolder";
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir="+intendedProfileDestinationPath);
WebDriver driver = new ChromeDriver(options);
//...visit one or more pages...
//use sqlite to access file:
try {
// db parameters
String url = "jdbc:sqlite:"+pathToSqliteCookiesFile;
// create a connection to the database
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
String sql = "SELECT * FROM cookies";
ResultSet result = conn.createStatement().executeQuery(sql);
//... iterate resultset ...
通过 maven 获取 sqlite 驱动程序:
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.28.0</version>
</dependency>
如果您只需要访问过的页面中的 cookie,请确保在重新启动 selenium 浏览器时删除完整的文件夹内容。