【问题标题】:Extensions installed on chrome browser missing when chrome browser instance is opened with Selenium chromeDriver使用 Selenium chromeDriver 打开 chrome 浏览器实例时,chrome 浏览器上安装的扩展程序丢失
【发布时间】:2013-05-08 01:02:31
【问题描述】:

我有一个特殊的问题。 当我通过 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 chrome浏览器:26.0.1410.64

【问题讨论】:

  • 有没有人需要更多信息来帮助解决这个问题...??

标签: google-chrome-extension selenium-chromedriver


【解决方案1】:

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

从 webdriver .net 绑定 2.40 开始可用。

【讨论】:

  • 即使有更新的语法 - 它对我不起作用。 options.AddExcludedArgument("disable-default-apps")
【解决方案2】:

这个答案可以在这里找到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);

【讨论】:

    【解决方案3】:

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

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

    并且扩展程序将在浏览器中。 java的参考可以在here找到。请参阅this question,了解如何从 chrome 商店获取扩展程序的 .crx 文件。

    【讨论】:

    • 它不需要是 CRX 文件,也可以接受 zip 文件。 API 被实现为“创建一个新的用户配置文件,解压扩展并加载解压的扩展”。不过 +1,因为这个答案比另一个更正确。
    • @RobW load CRX 给了我缺少清单文件错误。另外我如何获得扩展的 zip 包?
    【解决方案4】:

    如果您想在测试期间使用该扩展程序,您需要使用定义此扩展程序的配置文件启动 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);
    

    有关此事的更多信息可以找到here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2021-06-10
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多