Selenium С# System.ComponentModel.Win32Exception 'произошла ошибка System.dll

Я пишу код на Selenium C# и столкнулся с проблемой, с которой мне трудно разобраться. Я установил Selenium на тестовую машину, и он работает с Firefox. У меня была проблема при обновлении браузера, но я решил ее, когда установил Selenium 3.0. Я установил Selenium на свою обычную машину, где у меня версия Firefox 49.0.2, и он выдает следующую ошибку:

"В System.dll произошло необработанное исключение типа "System.ComponentModel.Win32Exception". Дополнительная информация: указанный исполняемый файл не является допустимым приложением для этой платформы ОС."

Кто-нибудь сталкивался с этим раньше? Операционные системы машин одинаковы. Мне интересно, может я что-то неправильно установил. Спасибо.


person AndrewC10    schedule 25.10.2016    source источник


Ответы (1)


Я должен был добавить это в комментарий. Но не думаю, что он туда влезет.

В основном исключение win32 не является частью собственных исключений dotnet. Но dotnet предоставляет механизм для обработки win32Execption. Существует N исключений Win32, очень сложно устранить неполадки, если вы не знаете конкретное.

Вы добавляете оператор «try.... catch», как показано ниже, в свой код C#. Затем распечатайте сообщение. это дает вам больше информации о том, что происходит не так

try {

//YOUR CODE / BUSINESS


   }
   catch(Win32Exception w)
 {

          Console.WriteLine(w.Message);
          Console.WriteLine(w.ErrorCode.ToString());
     }

Тогда, если вы сможете прочитать сообщение, вы будете знать, что отсутствует/происходит.

Я сомневаюсь, что вы пытаетесь получить доступ к функциям из какого-то исполняемого файла или библиотеки, которых нет в вашей системе.

Добавьте пространство имен: System.ComponentModel.Win32Exception (думаю, вы это знаете).

person Pavan Chandaka    schedule 26.10.2016
comment
Спасибо за ответ. Я добавил Try Catch, и он перемещает Указанный исполняемый файл не является допустимым приложением для этой платформы ОС. к консоли. Кроме этого, это мало что мне говорит. Не уверен, что это как-то связано с 32-битной или 64-битной машиной. - person AndrewC10; 26.10.2016
comment
Хм.. вы можете попробовать еще и посмотреть. Добавьте эти две строки в блок catch и посмотрите, помогает ли это больше Exception e=w.GetBaseException(); Console.WriteLine(e.Message); - person Pavan Chandaka; 26.10.2016