【问题标题】:Selenium C# System.ComponentModel.Win32Exception' occurred in System.dll ErrorSelenium C# System.ComponentModel.Win32Exception'发生在 System.dll 错误中
【发布时间】:2017-03-08 01:06:05
【问题描述】:

我正在用 Selenium C# 编写一些代码,但遇到了一个我无法解决的问题。我在测试机器上安装了 Selenium 并让它与 Firefox 一起使用。我在浏览器更新时遇到了问题,但在我安装 Selenium 3.0 时解决了。我在我的普通机器上安装了 Selenium,我的 Firefox 版本是 49.0.2,它抛出了以下错误:

“System.dll 中发生了“System.ComponentModel.Win32Exception”类型的未处理异常 附加信息:指定的可执行文件不是此操作系统平台的有效应用程序。”

有没有人遇到过这种情况?机器的操作系统都是相同的。我想知道我是否可能错误地安装了某些东西。谢谢。

【问题讨论】:

    标签: c# selenium operating-system win32exception


    【解决方案1】:

    我应该在评论中添加这个。但不要认为它会适合那里。

    基本上 win32 异常不是 dotnet 原生异常的一部分。但是 dotnet 提供了处理 win32Execption 的机制。 Win32异常有N个,除非你知道具体一个,否则很难排查。

    您将如下所示的“try ....catch”语句添加到您的 C# 代码中。 然后打印消息。这为您提供了有关问题所在的更多信息

    try {
    
    //YOUR CODE / BUSINESS
    
    
       }
       catch(Win32Exception w)
     {
    
              Console.WriteLine(w.Message);
              Console.WriteLine(w.ErrorCode.ToString());
         }
    

    然后,如果您可以阅读消息,您就会知道缺少/发生了什么。

    我怀疑您是在尝试访问系统上不存在的某些可执行文件或库中的功能。

    添加命名空间: System.ComponentModel.Win32Exception(我想你知道)。

    【讨论】:

    • 感谢您的回复。我添加了 Try Catch,它移动了“指定的可执行文件不是此 OS 平台的有效应用程序”。到控制台。除此之外,它并没有告诉我太多。不确定它是否与 32 位和 64 位机器有关。
    • 嗯..你可以多尝试一些看看。在 catch 块中添加这两行,看看它是否有助于更多 Exception e=w.GetBaseException(); Console.WriteLine(e.Message);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多