【问题标题】:Selenium WebDriver Java launch Edge Chromium with an unpacked extensionSelenium WebDriver Java 推出带有解压扩展的 Edge Chromium
【发布时间】:2021-02-02 08:51:01
【问题描述】:

我需要使用 Selenium 来启动 Edge (Chromium) 浏览器。我可以毫无问题地做到这一点。

但是,我想在安装了解压扩展程序的情况下启动上述浏览器。我有扩展的路径。通过在我的ChromeOptions 中添加一个名为--load-extentsion=<path> 的参数,我可以在Chrome 中做到这一点。但是,这对 Edge Chromium 不起作用。

阅读 MsEdgeDriver 的文档后,我发现:

所以,我尝试使用下图所示的这个按钮来打包扩展:

并使用下面的代码:

EdgeOptions edgeOptions = new EdgeOptions();
File extension = new File(extensionPath + File.separator + "my-extension.crx");
byte[] fileContent;
WebDriver webDriver;
try {
    fileContent = Files.readAllBytes(extension.toPath());
    edgeOptions.setCapability("extensions",Base64.getEncoder().encodeToString(fileContent));
    webDriver = new EdgeDriver(edgeOptions);
} catch (IOException e) {
    e.printStackTrace();
}

浏览器启动正常,但我的扩展程序没有加载。

我需要能够加载解压的扩展程序,而不必将其发布到 Chrome 或 Edge 应用商店。

谁能帮帮我?

谢谢 斯里拉姆

【问题讨论】:

  • 如果你已经有了 .crx,你不能在 EdgeOptions 中使用 .addExtensions() 吗?然后你只需要传递文件对象。

标签: java selenium-webdriver microsoft-edge-chromium


【解决方案1】:

你应该像这样添加扩展:

    var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
    var extensionName = "3.1.3_0.crx";

    var options = new EdgeOptions();
    options.AddExtensionPath($@"{outPutDirectory}\{extensionName}");

您也可以使用AddExtension(string pathToExtension)

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 2022-06-14
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2016-01-16
    • 1970-01-01
    相关资源
    最近更新 更多