使用Selenium Web Driver生成的Firefox配置文件保存

5
我使用Selenium WebDriver与火狐浏览器。每次Selenium在临时文件夹中生成新的匿名配置文件,退出后会将其删除。但我需要这个配置文件。如何获取它? 例如,配置文件存储在:
C:\Documents and Settings\Developer\Local Settings\Temp\anonymous5583304190515426768webdriver-profile

使用以下代码关闭WebDriver:

driver.quit();

该配置文件将被删除,但已经记录在案中,我希望在下一次迭代中使用它,只需使用它来初始化WebDriver:

FirefoxDriver driver = new FirefoxDriver(new FirefoxProfile(profileFolder));

是否有可能在不使用“肮脏的技巧”(比如在驱动程序运行时复制整个文件夹)的情况下保存配置文件呢?(我甚至不确定它是否有效,因为在Windows中,Firefox启动时文件夹是被锁定的)。也许Selenium中存在一些API可以实现这个功能吗?

1个回答

3

你为什么不改变方法?

  • Create firefox profile which will be clean and name it somehow you know what it is. e.g. SELENIUM
  • When initializing the Webdriver:

     ProfilesIni allProfiles = new ProfilesIni();
     FirefoxProfile desiredProfile = allProfiles.getProfile("SELENIUM");
     WebDriver driver = new FirefoxDriver(desiredProfile);
    
那样,你就可以确保每次做测试时都会使用这个配置文件...

2
不幸的是,Selenium会将输入配置文件中的数据复制到临时配置文件中,例如anonymous5583304190515426768webdriver-profile,因此所有的cookie都会在其中(并在测试关闭后被删除)。 - rdo
3
你可以通过查找“profile.path value”来恢复临时配置文件。以下是使用Python绑定的示例:https://dev59.com/WYvda4cB1Zd3GeqPWjpV#33350778 - m3nda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接