Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
841 views
in Technique[技术] by (71.8m points)

c# - FirefoxWebdriver No data is available for encoding 437

I want to create a FirefoxWebdriver but get the following error

  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..

it is a netstandard2.0 lib and runs on dotnet core 2.2 Can anybody help?

I tried to import System.Text.Encoding.CodePages and try to use System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance) but this is not supported in 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);
        }

I except the Firefox Browser to start but get an encoding error.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Add NuGet Package System.Text.Encoding.CodePages

Before Creating the FirefoxDriver object, do this:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...