пытается запустить селен в рубине "127.0.0.1" порт 9514 (Errno :: EADDRNOTAVAIL) - PullRequest
0 голосов
/ 23 февраля 2019

Это мой файл

требуется 'selenium-webdriver'

driver = Selenium :: WebDriver.for: chrome

У меня естьФайл драйвера хрома селена в моем пути c:\windows\system32\chromedriver.exe Я получил файл от https://chromedriver.storage.googleapis.com/index.html?path=73.0.3683.20/

Подобные вещи мне уже работали.

C:\blah>ruby aaa.rb
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:78:in `stop': undefined method `poll_for_exit' for nil:NilClass (NoMethodError)
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:67:in `block in start'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/platform.rb:141:in `block in exit_hook'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `initialize': The requested address is not valid in its context. - bind(2
) for "127.0.0.1" port 9514 (Errno::EADDRNOTAVAIL)
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `new'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `can_lock?'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:50:in `lock'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:36:in `locked'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:69:in `start'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/driver.rb:44:in `initialize'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver.rb:44:in `new'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver.rb:44:in `for'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver.rb:86:in `for'
        from aaa.rb:4:in `<main>'

C:\blah>

Я подумал, что файл предназначен длякакая-то причина, по которой внезапно потребовалась запись, и то, что находилось в c:\windows\system32, ограничивало его, поэтому я переместил его в c: \ abc и добавил это к пути, но все равно та же ошибка.

Ошибкаупоминает порт 9514. Я ничего не слушаю на порту 9514

C: \ Users \ user> netstat -aon |grep 9514

C: \ Users \ user>

Я также могу запустить сервер на порту 9514 и заставить его что-то прослушивать (протестировано с nc -l 9514 и netstat -aon | grep 9514), поэтому сервер не может прослушивать порт 9514.

делает ruby ​​-d aaa.rb

C:\rubytest\garybrown>ruby -d aaa.rb
Exception `LoadError' at C:/Ruby24-x64/lib/ruby/2.4.0/rubygems.rb:1355 - cannot load such file -- rubygems/defaults/ruby
aaa.rb:4: warning: assigned but unused variable - driver
Exception `LoadError' at C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55 - cannot load such file -- selenium-webdriver
Exception `LoadError' at C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/library.rb:259 - LoadError
Exception `LoadError' at C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/ffi-1.9.25-x64-mingw32/lib/ffi/library.rb:259 - LoadError
Using Ext extension for JSON.
Exception `Errno::EADDRNOTAVAIL' at C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61 - The requested address is not valid in
its context. - bind(2) for "127.0.0.1" port 9514
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:136: warning: instance variable @process not initialized
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:78: warning: instance variable @process not initialized
Exception `NoMethodError' at C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:78 - undefined method `poll_for_exit' for nil:NilClass

C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:136: warning: instance variable @process not initialized
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:78:in `stop': undefined method `poll_for_exit' for nil:NilClass (NoMethodError)
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/service.rb:67:in `block in start'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/platform.rb:141:in `block in exit_hook'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `initialize': The requested address is not valid in its context. - bind(2
) for "127.0.0.1" port 9514 (Errno::EADDRNOTAVAIL)
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `new'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:61:in `can_lock?'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/socket_lock.rb:50:in `lock'

Я пытался gem install selenium-webdriver, но проблема все та же

У меня Chrome версии 72 и в соответствии с http://chromedriver.chromium.org/downloads совместимой версией является ChromeDriver 2.46 или ChromeDriver 72.0.3626.69, но обе дают ту же ошибку.

Я попытался создать Gemfile с

source 'https://rubygems.org'

gem 'selenium-webdriver'

и выполнение bundle install

, но все равно ruby aaa.rb выдает ту же ошибку

1 Ответ

0 голосов
/ 25 февраля 2019

Я упоминал в комментарии

Я мог бы попытаться сбросить стек tcp / ip или что-то еще, потому что я заметил, что я не могу пропинговать 127.0.0.1 .. nc был привязан к 0.0.0.0, у меня не было 't протестировал привязку к 127.0.0.1 .. заглянем в это

Конечно, неспособность пропинговать 127.0.0.1 была отличным шагом .. Я попытался сбросить стек tcp / ip, как упомянуто здесь https://superuser.com/questions/29720/general-failure-when-pinging-to-127-0-0-1

Запустив команду netsh int ip reset и перезапустив ее, я обнаружил, что могу затем пропинговать 127.0.0.1 и что у меня больше нет этой ошибки.

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