【问题标题】:How to Force Selenium to use Permanent Firefox Profiles with WebDriver?如何强制 Selenium 使用带有 WebDriver 的永久 Firefox 配置文件?
【发布时间】:2017-02-15 16:53:28
【问题描述】:

我在 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,就好像我使用永久配置文件正常浏览一样?我只是希望它像普通用户一样启动。

谢谢

【问题讨论】:

    标签: java selenium firefox cookies


    【解决方案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

    【讨论】:

    • 谢谢,但这并不能回答我的问题。我想知道如何强制 Selenium 精确地使用永久 FF 配置文件以避免保存和恢复 cookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 2016-11-08
    • 2020-12-12
    • 1970-01-01
    • 2011-11-06
    • 2020-10-24
    相关资源
    最近更新 更多