问题描述
我想在C#中使用Selenium时在Edge中加载扩展。
我想我必须使用EdgeOptions.AddExtensionPath()
,但通过路径时不会加载任何扩展名。
扩展名是从%localappdata%\Microsoft\Edge\User Data\Default\Extensions
这是用于初始化EdgeDriver的代码的一部分:
using OpenQA.Selenium.Edge;
public void InitializeNewDriver() {
string microsoftWebDriverPath = @"some\path";
EdgeDriverService service = EdgeDriverService.CreateDefaultService(microsoftWebDriverPath);
EdgeOptions options = new EdgeOptions();
options.AddExtensionPath(@"path\to\extension\folder");
Driver = new EdgeDriver(service,options);
}
编辑:我正在使用Selenium.Webdriver v4.0.0
解决方法
我尝试测试该问题,发现如果将扩展名的位置传递给options.AddExtensionPath()
,则该扩展名没有获得负载。
我建议尝试使用options.AddExtensions()
方法并将扩展名的.CRX
文件作为参数传递。
它可以帮助您成功加载扩展程序。
C#代码示例:
var options = new EdgeOptions();
options.UseChromium = true;
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
options.AddExtensions(@"Path_of_the_extension_here\extension.crx");
var driver = new Microsoft.Edge.SeleniumTools.EdgeDriver(@"Web_driver_path_here......",options);
driver.Navigate().GoToUrl("https://Your_URL_will_be_here...");
输出:
此外,您可以根据自己的要求修改代码示例。