微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Selenium WebDriver Java 启动带有解压扩展的 Edge Chromium

如何解决Selenium WebDriver Java 启动带有解压扩展的 Edge Chromium

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

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

阅读 MsEdgeDriver 的文档,我发现:

Documentation in the official site

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

Packaging the extension from the Edge extensions page

并使用以下代码

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 应用商店。

有人可以帮我吗?

谢谢 斯里拉姆

解决方法

你应该像这样添加扩展:

    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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。