如何阻止Selenium使用Web Driver创建临时Firefox配置文件?

Ran*_*ray 52 java profile firefox selenium webdriver

我正在使用Selenium Web Driver API和Java.每次我想调试我的测试用例时,都会在临时文件目录中创建Firefox的临时配置文件.这在两个方面令人头疼.

  1. 它肯定会花费不必要的时间来创建一个配置文件,并占用不必要的空间.
  2. 我无法安装下次启动测试用例时可用的任何插件.

我该如何解决这个问题?

Ros*_*son 31

您可以控制Firefox驱动程序选择配置文件的方式.将该webdriver.firefox.profile属性设置为要使用的配置文件的名称.大多数人认为这是一个坏主意,因为你将继承所有的cookie,缓存内容.以前使用的配置文件,但如果你真的想这样做,它是允许的.

例如:

System.setProperty("webdriver.firefox.profile", "MySeleniumProfile");
WebDriver driver = new FirefoxDriver(...);
Run Code Online (Sandbox Code Playgroud)

更新 - 来自Ranhiru

我是如何为Java处理它的

FirefoxProfile profile = new FirefoxProfile(new File("D:\\Selenium Profile"));                  
WebDriver driver = new FirefoxDriver(profile);
Run Code Online (Sandbox Code Playgroud)

然后我更改了Firefox中的设置,以便在退出时清除所有cookie和缓存.看看这里怎么做.

  • `然后我更改了Firefox中的设置,以便在退出时清除所有cookie和缓存. - 我不认为这是必要的,因为Selenium仍会创建临时配置文件.它使用您指定的一个作为基础,即它复制设置,因此原始配置文件不应更改. (6认同)
  • 这并不能解决问题#1.如前所述,无论如何都会创建临时配置文件,因此会消耗时间和空间. (4认同)

小智 22

一定要打电话

driver.quit();
Run Code Online (Sandbox Code Playgroud)

代替

driver.close();
Run Code Online (Sandbox Code Playgroud)

close()不会删除临时文件

  • @JohannesKlauß这提供了答案的答案="正在占用不必要的空间".如果你没有正确调用driver.quit(),你将以大量的Gb虚拟配置文件数据结束. (5认同)