Selenium c# -在Firefox 48中加载配置文件会抛出异常
本文关键字:加载 配置文件 抛出异常 Firefox Selenium | 更新日期: 2023-09-27 18:04:11
我使用的是gecko/marionette driver,并尝试了selenium 2和selenium 3。
我已经成功地启动了一个Firefox会话与web驱动程序,没有配置文件使用选项和服务指定二进制:
FirefoxOptions options = new FirefoxOptions();
options.BrowserExecutableLocation = @"C:'Program Files (x86)'Mozilla'Firefox'firefox.exe";
driver = new FirefoxDriver(options);
或
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"C:'Program Files (x86)'Mozilla Firefox'firefox.exe";
driver = new FirefoxDriver(service);
但是,当我试图通过添加选项加载配置文件时:
options.Profile = profile;
给出一个corrupt deflate stream
异常。
当我手动指定二进制文件,然后尝试加载配置文件(在版本3中已弃用)时,也会发生这种情况
在新的Firefox更新之前,相同的配置文件抓取和加载工作。有什么特别的事情需要做才能使它工作吗?
我在加载自定义配置文件时遇到了同样的问题corrupt deflate stream
,下面是帮助我的方法:
我打开了我的自定义配置文件%AppData%'Mozilla'Firefox'Profiles'TestProfile
的文件夹,并删除了所有空(0 kB大小)文件。(分别是"AlternateServices.txt"answers"parent"。在配置文件目录的根目录中锁定"
之后,下面的代码像魅力一样工作:
var FirefoxProfileManager = new FirefoxProfileManager();
var profile = FirefoxProfileManager.GetProfile("TestProfile");
//driver = new FirefoxDriver(profile);
var firefoxService = FirefoxDriverService.CreateDefaultService();
var options = new FirefoxOptions();
options.Profile = profile;
driver = new FirefoxDriver(firefoxService, options, new TimeSpan(0, 0, 30));
当使用默认配置文件时,以下内容对我有效,我使用它来解决一个问题,即它不使用我们需要通过安全系统的根证书:
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:''TestData'Dependencies", "geckodriver.exe");
service.FirefoxBinaryPath = @"C:'Program Files (x86)'Mozilla Firefox'firefox.exe";
FirefoxProfileManager profileM = new FirefoxProfileManager();
FirefoxProfile profile = profileM.GetProfile("default");
//service.Port = 64444;
FirefoxOptions options = new FirefoxOptions();
options.Profile = profile;
Instance = new FirefoxDriver(service,options, TimeSpan.FromMinutes(1));
TurnOnWait();
HTH