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)