如何使用Selenium FirefoxDriver启动多个Firefox可移植实例

时间:2014-12-25 12:23:32

标签: c# firefox selenium firefox-driver

我在测试中使用selenium FirefoxDriver并且我并行运行这些测试 - 在每个线程中运行分离的Firefox实例。当我使用普通的FireFox时,一切正常,但是如果我想用Firefox可移植运行这些测试,第一个实例启动成功,但第二个,第三个等等......失败并出现此错误:

  

无法加载您的Firefox个人资料。它可能缺失或无法访问。

这是我从代码启动Firefox的方式:

var profile = new FirefoxProfileManager().GetProfile("default");
var firefoxBinary = new FirefoxBinary("Path to FireFoxPortable.exe");
_driver = new FirefoxDriver(firefoxBinary, profile);

任何想法我做错了什么? 感谢。

1 个答案:

答案 0 :(得分:3)

Firefox驱动程序正在尝试使用已在使用的配置文件启动Firefox。这是不可能的,因为配置文件只能使用一次。它在多次手动启动Firefox时似乎正在工作的原因是因为Firefox将使用已加载的配置文件重用现有的运行Firefox进程。

基于此信息,您的问题的解决方案是:1)让Firefox驱动程序启动具有唯一/新配置文件的Firefox,2)更改您的代码,以便只需要一个Firefox驱动程序实例。

要启动具有多个实例的Firefox,请使用:firefox.exe -P“我的个人资料”-no-remote。不要将-no-remote参数与启动的第一个配置文件一起使用,在您的情况下,它将是“默认”配置文件。更多相关信息:http://kb.mozillazine.org/Opening_a_new_instance_of_Firefox_with_another_profile

要使用不同的配置文件启动Firefox Portable,如果以前的命令不适用于Firefox Portable,请按照此处的说明操作:http://portableapps.com/support/firefox_portable#second_profile