Watir Webdriver (0.9.1) больше не открывает экземпляр Firefox

При использовании Watir Webdriver v0.9.1 для рельсов (вместе с Selenium Webdriver 2.53.1) Firefox открывался, когда

  browser = Watir::Browser.new :firefox

назывался. Теперь, однако, он терпит неудачу на этой линии с

unable to bind to locking port 7054 within 45 seconds
    @ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:59:in `lock'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:40:in `locked'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `new'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `for'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver.rb:84:in `for'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize'
      test/integration/like_fanpage_task_test.rb:40:in `new'
      test/integration/like_fanpage_task_test.rb:40:in `block (2 levels) in <class:LikeFanpageTaskTest>'

Казалось, что это происходит случайно, поскольку я не изменил код из его рабочей формы, и эта строка называется первой строкой. У меня Firefox 37.0.2, который работал раньше. Я попытался перезагрузить компьютер, завершить процессы, связанные с ruby ​​и Firefox, запустить их снова и переустановить Firefox, но безрезультатно.

 titusfortner14 июн. 2016 г., 01:34
Хм, порт по умолчанию для Firefox - 7055, поэтому я не уверен, как вы получите 7054, когда код Selenium делает:port += 1 until free? port, Установите $ DEBUG = true и добавьте суть в свой стандартный вывод.
 Antesser14 июн. 2016 г., 08:48
Я поймал довольно похожую проблему около 2 дней назад. Вы используете 47 версию Firefox? Если это так, попробуйте понизить до 46. 46 работает для меня. Это не «Ответ». Но если это сработает, будет проще попытаться это исправить.
 andmcadams14 июн. 2016 г., 00:58
Хороший улов, я тестировал его с 0.6.2, чтобы убедиться, что я не случайно обновился, но забыл изменить его обратно. Мой пост сейчас показывает ошибку с Watir 0.9.1
 titusfortner14 июн. 2016 г., 00:49
> При использовании Watir Webdriver v0.9.1 ваша трассировка стека показывает, что вы работаетеwatir-webdriver-0.6.2 Много изменений было сделано с тех пор.
 andmcadams14 июн. 2016 г., 00:49
Всякий раз, когда я пытаюсь убить процесс, используяsudo kill -9 PID это все еще обнаруживается при использованииps aux | grep firefox но с PID на два больше, чем в прошлый раз, и Ватир по-прежнему не открывает Firefox.
 Maxim Dobryakov14 июн. 2016 г., 00:42
Похоже, у вас есть экземпляр FF, но без видимого окна. Итак, закройте все экземпляры Firefox и убедитесь, что они не запускаютсяps aux | grep firefox команда. Если вы видите другие экземпляры Firefox, убейте их или перезагрузите компьютер.

Ответы на вопрос(2)

Решение Вопроса

и из-за ошибки в Firefox 47 только новый веб-драйвер работает для Firefox. Однако я бы предложил навсегда перейти на новый веб-драйвер, так как поддержка будет полностью прекращена с Firefox 48.

Вы можете использовать новый веб-драйвер в ruby, используя следующее:

driver = Selenium::WebDriver.for :firefox, marionette: true

Но я не знаю, поможет ли это вам использовать его и в воде.

Насколько я могу судить, поддержка марионеток (нового драйвера) еще не завершена в Watir (я могу ошибаться), я вижуэтот запрос на получение доступа обрабатывает его, но он не завершен или не объединен.

Мне кажется, что вы можете сделать:

browser = Watir::Browser.new :marionette

Когда проект watir будет завершен, будет добавлен новый драйвер.

 titusfortner13 июл. 2016 г., 18:15
Стоит также отметить, что обновление до Firefox 47.0.1 и использование selenium-webdriver gem 2.53.4 исправляет эту конкретную проблему, пока не нужно использовать Marionette.
 titusfortner13 июл. 2016 г., 18:10
Я пропустил эту дискуссию ранее. Правильный способ использования марионеток с Watir в настоящее времяWatir::Browser.new :firefox, marionette: true, Когда выйдет Selenium 3.0 и Watir обновится по требованию, Marionette станет вариантом по умолчанию. Этот запрос на вытягивание не имеет ничего общего с тем, как Ватир поддерживает Марионетку; Ватир в настоящее время поддерживает это в той мере, в какой это поддерживает Selenium. Поскольку существует ряд команд, на которые полагается Watir, которые еще не реализованы в Marionette, функциональность будет отсутствовать.

используйте последнюю версию webdriver selenium-webdriver.2.5.4, пока она недоступна на seleniumhq, но поищите ее.

 titusfortner13 июл. 2016 г., 18:05
Не уверен, почему за это проголосовали, поскольку это по существу правильно. Вам нужен selenium-webdriver gem 2.53.4 (там, где комментатор пропустил 3), чтобы ваши тесты работали с Firefox 47.0.1

Ваш ответ на вопрос