Selenium C# - 在Firefox 48中加载配置文件会引发异常

时间:2016-08-25 14:39:46

标签: c# selenium firefox

我正在使用gecko / marionette驱动程序并尝试过硒2和硒3。

我已经使用网络驱动程序成功启动了Firefox会话,并且没有使用选项和服务的配置文件来指定二进制文件:

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更新之前,这个相同的配置文件抓取和加载工作正常。为了让这个工作有效,还有什么需要做的吗?

2 个答案:

答案 0 :(得分:3)

我在加载自定义配置文件时遇到了同样的问题corrupt deflate stream,这对我有帮助:

我打开了自定义配置文件%AppData%\Mozilla\Firefox\Profiles\TestProfile的文件夹,并删除了所有空(0 kB大小)文件。 (它们是配置文件目录根目录中的“AlternateServices.txt”和“parent.lock”)

之后,以下代码就像魅力一样:

        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));

答案 1 :(得分:0)

以下对我来说在使用默认配置文件时,我已经用它来解决一个问题 - 它不使用我们需要通过我们的安全系统的根证书:

plot <- ggplot(mockdata, aes(variable, Measurement, fill = plotval)) + 
    geom_tile(colour = "dark red")  + 
    facet_grid(category~type, scales='free', space='free') + 
    scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + 
    theme_minimal() + 
    theme(axis.text.x=element_text(size=28, angle=90), 
          axis.text.y=element_text(size=28, face = "italic"),
          strip.text.x=element_blank(),
          strip.text.y=element_text(size=20, angle=0)) + 
    labs(title="", x="", y="", fill="")

HTH