0

将 Selenium WebDriver 3.0.1.0 与 Marionette 和 geckodriver 0.11.1 以及来自 C# 的 Firefox 50 一起使用。我使用FirefoxOptions了这个 ObsoleteAttribute 的动机:

FirefoxDriver 不应使用 FirefoxBinary 对象构造。请改用 FirefoxOptions。

代码是:

FirefoxOptions fo = new FirefoxOptions();
firefoxProfile = new FirefoxProfile();
firefoxProfile.SetPreference("browser.download.folderList", 2);
firefoxProfile.SetPreference("browser.download.dir", DOWNLOAD_FOLDER);
firefoxProfile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv");
firefoxProfile.SetPreference("browser.startup.homepage_override.mstone", "ignore");
firefoxProfile.SetPreference("trustAllSSLCertificates", true);
firefoxProfile.AcceptUntrustedCertificates = true;

fo.Profile = firefoxProfile;
driver = new FirefoxDriver(fo);

在我看来,就像firefoxProfile根本没有使用指定的一样,出现 SSL 证书错误,并且无论配置文件设置如何,都显示下载对话框。我认为它不会因为这个错误而忽略 SSL 证书错误,但看起来所有配置文件设置都被忽略了。

如何使配置文件设置生效?(这样就不会出现下载对话框并忽略 SSL 错误)

该代码在切换到 Marionette 之前有效,看起来 Marionette 尚未准备好使用?

4

2 回答 2

0

这可以顺利避免访问 SSL 证书错误页面:

    public static FirefoxOptions FfOptions()

            {
                FirefoxOptions option = new FirefoxOptions();
                option.AcceptInsecureCertificates = true;
                return option;
            }

    public static IWebDriver driver = new FirefoxDriver(FfOptions());
于 2019-02-28T10:22:34.977 回答
0

我不确定配置文件设置实际上是否被忽略:

  1. 您应该检查MIME要下载的文件类型。真的text/csv吗?
  2. 没有这样的偏好trustAllSSLCertificates。我想你需要firefoxProfile.SetPreference("security.ssl.enable_ocsp_stapling", false);
于 2016-11-28T16:02:30.387 回答