1

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

但是,我想启动安装了解压扩展的上述浏览器。我有扩展的路径。我可以通过--load-extentsion=<path>在我的ChromeOptions. 但是,这对 Edge Chromium 不起作用。

阅读 MsEdgeDriver 的文档,我发现了这一点: 官方网站中的文档

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

并使用下面的代码:

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 应用商店上发布它。

谁能帮我?

谢谢斯里拉姆

4

1 回答 1

0

您应该像这样添加扩展名:

    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)

于 2021-03-16T17:47:05.050 回答