gpt4 book ai didi

java - 如何强制 Selenium 使用 WebDriver 的永久 Firefox 配置文件?

转载 作者:行者123 更新时间:2023-12-01 14:55:13 26 4
gpt4 key购买 nike

我在 Java 中使用 Selenium Web Driver API。每当我运行 Web 驱动程序时,它都会自动创建一个 tmp Firefox 配置文件并执行与 tmp 配置文件相关的所有驱动程序相关代码。

我的问题不在于这个问题中所提出的额外空间:How to stop Selenium from creating temporary Firefox Profiles using Web Driver?我知道我可以调用 driver.quit 来清除 tmp 配置文件使用的资源。

相反,我的问题是我想使用永久的 Firefox 配置文件,以便下次启动此 FF 配置文件时,我会继承上一个配置文件的所有 cookie 和缓存。我知道我每次都可以手动保存和添加 cookie,但这很乏味。

那么,有什么方法可以强制 Firefox 不创建 tmp 配置文件并启动 Firefox,就像我使用永久配置文件正常浏览一样?我只是想让它像普通用户一样浏览一样启动。

谢谢

最佳答案

通常 Selenium 不支持跨 session 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

关于java - 如何强制 Selenium 使用 WebDriver 的永久 Firefox 配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39904549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com