使用Selenium ChromeDriver如何加载保存的扩展程序设置?

时间:2018-04-23 23:25:34

标签: c# selenium google-chrome-extension selenium-chromedriver

我正在使用Selenium.WebDriver.ChomeDriver v2.38.0和Chrome v66.0.3359.117(官方版)。

要继续讨论,我将提供示例扩展。对于这篇文章,我将使用Ghostery - Privacy Ad Blocker v8.1.2。

使用C#我加载扩展crx文件,如下所示:(跳过我创建crx的步骤)

var options = new ChromeOptions();
options.AddExtension(workFolder + @"\Chrome32\extensions\8.1.2_0.crx");
var driver = new ChromeDriver(options);

哪个效果很好:Ghostery会加载它的默认设置。不幸的是,禁用了所有拦截器。

切换回我的桌面并手动打开Chrome - 我看到它确实加载了我保存的设置(所有内容都被Ghostery阻止)。这告诉我,不知怎的,我需要以编程方式加载保存的设置。我非常肯定,在我的手动浏览过程中,Chrome可以执行此操作,因为它从C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default加载了我的Chrome用户个人资料

我已经知道我可以使用

直接加载此用户个人资料
options.AddArgument("user-data-dir=" + @"C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default");

但我不想使用该个人资料。它是70MB大,并且有很多与我相关的其他好东西,我不想使用它。

相反,我想以编程方式加载已保存的扩展程序设置,或者以某种方式将它们保存在将为我加载的位置。窥探,我看到用户配置文件中有一个Extension State文件夹:

enter image description here

我的预感是,必须有一种方法以Selenium的方式加载这些扩展设置吗?

0 个答案:

没有答案