FirefoxWebdriver没有数据可用于编码437

时间:2019-06-28 07:32:34

标签: c# .net-core

我想创建一个FirefoxWebdriver,但出现以下错误

  Message: 
    Initialization method Sma.Ldx.Systemtest.Ui.Tests.IbaTest.TestInitialize
 threw exception. System.TypeInitializationException: The type initializer for 
'System.IO.Compression.ZipStorer' threw an exception. ---> 
System.NotSupportedException: No data is available for encoding 437. For 
information on defining a custom encoding, see the documentation for the 
Encoding.RegisterProvider method..

它是netstandard2.0库,在dotnet core 2.2上运行 有人可以帮忙吗?

我尝试导入System.Text.Encoding.CodePages并尝试使用System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance),但dotnetcore2.2中不支持此功能

private static IWebDriver InitializeFirefoxDriver(bool headless, bool remote, Uri seleniumHubUri, PlatformType platform, string locale, string webDriverPath)
        {
            var options = new FirefoxOptions()
            {
                Profile = new FirefoxProfile()
                {
                    AcceptUntrustedCertificates = true,
                    AssumeUntrustedCertificateIssuer = true
                },
            };
            options.AddArgument($"--lang={locale}");
            if (headless || remote)
            {
                options.AddArgument("-headless");
            }
            options.PlatformName = platform.ToString();
            FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(webDriverPath, "geckodriver.exe");
            service.Start();
            return remote ? new RemoteWebDriver(seleniumHubUri, options) : new FirefoxDriver(service, options);
        }

除了Firefox浏览器之外,我可以启动,但出现编码错误。

2 个答案:

答案 0 :(得分:9)

添加NuGet软件包System.Text.Encoding.CodePages

在创建FirefoxDriver对象之前,请执行以下操作:

 CodePagesEncodingProvider.Instance.GetEncoding(437);
 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

答案 1 :(得分:1)

解决此问题的一种方法是将 Selenium.WebDriver 软件包升级到 4.*(目前处于预发布阶段)。

上下文:这是此 GitHub 问题的一个实例:https://github.com/SeleniumHQ/selenium/issues/4816。此问题已在 4.x 分支中修复,因为在该版本中导致此问题的依赖项 has been removed