9

我在这里有一个特殊的问题。当我通过 chromeDriver 打开 chromeBrowser 时,以前安装的扩展程序丢失。此外,应用程序扩展程序将从扩展程序文件夹(AppData\Local\Google\Chrome\User Data\Default\Extensions)中删除。

现在,当我手动打开 chrome 浏览器时,扩展程序出现在浏览器上,扩展文件夹(AppData\Local\Google\Chrome\User Data\Default\Extensions)中的应用程序文件夹也不再出现。

以下是 chromedriver 和浏览器的版本。chromedriver 版本:26.0.1383.0 chromebrowser:26.0.1410.64

4

4 回答 4

9

您必须安装要使用的每个扩展。在 Selenium2 C# API 中,它看起来像这样

var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx"));
var driver = new ChromeDriver(options);

并且扩展程序将在浏览器中。可以在此处找到 java 的参考。有关如何从 chrome 商店获取扩展程序的 .crx 文件,请参阅此问题。

于 2013-09-24T11:55:06.407 回答
5

这个答案可以在这里找到https://sites.google.com/a/chromium.org/chromedriver/extensions。Chrome 扩展程序可以打包或解包。打包扩展名是具有 .crx 扩展名的单个文件。解压后的扩展是一个包含扩展的目录,包括一个 manifest.json 文件。

要打包未打包的扩展程序,请使用 chrome://extensions 中的“打包”按钮或使用 Chrome:“chrome.exe --pack-extension=C:\path\to\unpacked\extension --pack-extension-key=C: \myext.pem”。请参阅扩展文档以了解其他更自动化的方法。要解压打包的扩展,只需解压缩文件(您可能需要将文件从 .crx 重命名为 .zip 以便 zip 实用程序识别它)。通过 ChromeDriver 安装扩展

打包(.crx 文件)

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

解压(目录)

ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=/path/to/extension");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
于 2013-12-12T06:40:20.350 回答
2

如果您想在测试期间使用扩展程序,您需要使用定义此扩展程序的配置文件启动 chrome,或者将扩展程序作为所需属性提供给 webdriver。通常,当您通过 webdriver 启动 chrome 时,chrome 每次都以新的配置文件开始。

因此,如果您想在测试 chrome 中加载扩展,请执行以下操作:

 DesiredCapabilities capabilities = DesiredCapabilities.chrome();
 capabilities.setCapability("chrome.switches", 
    Arrays.asList("--load-extension=/path/to/extension/directory"));
 WebDriver driver = new ChromeDriver(capabilities);

更多关于此事的信息可以在这里找到

于 2013-05-14T09:22:26.183 回答
0

ChromeOptions 选项 = 新 ChromeOptions(); options.AddAdditionalCapability("excludeSwitches", new object[] { "disable-default-apps" });
IWebDriver drv = new ChromeDriver(options);

从 webdriver .net bindings 2.40 开始可用。

于 2014-03-25T19:15:48.460 回答