Firefox аварийно завершает работу при закрытии/выходе – Pytest Selenium с RemoteWebDriver

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

  • Pytest на моем сервере Linux — информация о сборке: версия: «3.0.1», редакция: «1969d75», время: «2016-10-18 09:48:19 -0700»
  • Firefox на моем удаленном ноутбуке с Win7 — browserVersion 50.0.2
  • Geckodriver на моем удаленном ноутбуке с Win7 — geckodriver-v0.11.1-win64. Информация о системе: хост: 'XXXXXXXXX', ip: 'XXX.XXX.XXX.XXX', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_111' Информация о драйвере: org.openqa.selenium.firefox.FirefoxDriver
  • Geckodriver на моем Linux-сервере в $PATH — geckodriver-v0.11.1-linux64.tar

Мой сеанс pytest + selenium открывает окно браузера на моем удаленном ноутбуке и делает все правильно, пока тест не завершится. В этот момент происходит сбой Firefox, и удаленный Geckodriver сообщает: «[Child 1688] ###!!! ipc/glue/MessageChannel.cpp, строка 2056".

Я был бы признателен за любые предложения или рекомендации, чтобы Firefox не завис. Большое тебе спасибо.


person user2790    schedule 26.12.2016    source источник
comment
ваш windows 7 OS is of 32-bit (x86), но с использованием 64-битного geckodriver. наверное это может быть причиной. скачай 32-bit version of geckodriver и попробуй.   -  person Naveen Kumar R B    schedule 26.12.2016
comment
Большое спасибо, Навин, это очень интересное наблюдение. На самом деле, моя ОС WIn7 является 64-битной (я проверил в Панели управления-Система, чтобы быть на 100% уверенным), поэтому мне интересно, почему она сообщает os.arch x86. Во всяком случае, в качестве эксперимента я временно заменил 32-битный geckodriver v0.11.1 WIndows и попробовал снова, но получил тот же результат :-(   -  person user2790    schedule 26.12.2016
comment
Покопавшись в этом немного дальше... моя JVM 32-битная, как и мой браузер Firefox. (Это ноутбук, предоставленный компанией, и, очевидно, по какой-то причине они хотят запускать 32-разрядные версии FF и IE, поэтому JVM также является 32-разрядной версией).   -  person user2790    schedule 27.12.2016
comment
Как следует из названия geckodriver, битовая версия связана с ОС Windows. Если используется 64-битный geckodriver, он сначала проверит 64-битный Firefox, если он не установлен, а затем запустит 32-битный Firefox. (требуется ссылка). Это мое наблюдение, которое я сделал ранее. Поскольку geckodriver все еще находится в стадии разработки, он может быть ошибкой. Попробуйте смоделировать в других средах и подтвердите проблему. В качестве обходного пути вы можете использовать перехват исключения вместо его создания и обработки самостоятельно.   -  person Naveen Kumar R B    schedule 27.12.2016
comment
Еще раз спасибо, Навин. Ценим ваши комментарии и предложения.   -  person user2790    schedule 28.12.2016