我想在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
发布于 2020-10-13 02:59:15
我试着测试这个问题,发现如果您将扩展的位置传递给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...");
输出:
此外,您还可以根据自己的需求修改代码示例。
https://stackoverflow.com/questions/64318418
复制相似问题