无法在Selenium firefox驱动程序(geckodriver)中加载扩展名

时间:2019-07-12 12:04:17

标签: c# selenium geckodriver

我手动创建了一个包含附加组件/扩展名(Hotspot Shield VPN附加组件)的特定Firefox配置文件。现在,在代码中,我正在通过firefox驱动程序加载此配置文件,但是问题是从代码启动时未加载扩展。另一方面,在手动启动配置文件时,它也可以正常工作。

var profileManager = new FirefoxProfileManager();
var profile = profileManager.GetProfile("brysontiller");
profile.SetPreference("extensions.allowPrivateBrowsingByDefault", true);
profile.SetPreference("extensions.hotspot-shield@anchorfree.com.onByDefault", true);
var options = new FirefoxOptions { Profile = profile, LogLevel = FirefoxDriverLogLevel.Trace };
var driver = new FirefoxDriver(@"C:\Users\danza\source\repos\InstaManager\", options);

driver.Navigate().GoToUrl("https://www.google.com");

我尝试通过使用

在代码中添加扩展名
profile.AddExtension(@"C:\Users\danza\AppData\Roaming\Mozilla\Firefox\Profiles\652o40ny.profile_7\extensions\hotspot-shield@anchorfree.com.xpi");

以上问题仍然在此代码行中仍然存在。 (尽管实际上并不需要,因为手动创建的配置文件已经包含所需的扩展名,因此无需再次添加。)

我还尝试设置各种个人资料偏好设置,如下所示:

profile.SetPreference("extensions.allowPrivateBrowsingByDefault", true);
profile.SetPreference("extensions.hotspot-shield@anchorfree.com.onByDefault", true);

问题仍然存在。

当我手动启动配置文件时,加载项如下所示:

enter image description here

但是当我通过代码启动它时,它不会:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您手动创建了配置文件,为什么不尝试直接使用它打开浏览器:

 FirefoxOptions firefoxOptions = new FirefoxOptions();
 firefoxOptions.Profile = new FirefoxProfile("Path to the profile");
 driver = new FirefoxDriver(..., firefoxOptions);

你能不能让我知道?