Selenium WebDriver Java запускает Edge Chromium с распакованным расширением

Мне нужно использовать Selenium для запуска браузера Edge (Chromium). Я могу это сделать без проблем.

Однако я хочу запустить указанный браузер с установленным распакованным расширением . У меня есть путь для расширения. Я могу сделать это в Chrome, добавив аргумент под названием --load-extentsion=<path> в моем ChromeOptions. Однако то же самое не работает для 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.

Может кто-нибудь мне помочь?

Спасибо Шрирам

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)

Другие вопросы по тегам