这是我的文件
需要“ 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上监听没有问题。 / p>
做红宝石-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
仍然出现相同的错误
答案 0 :(得分:0)
我在评论中提到
我可能会尝试重置tcp / ip堆栈或某些内容,因为我注意到我无法 ping 127.0.0.1 .. nc已绑定到0.0.0.0,我尚未测试过绑定到 127.0.0.1 ..将对此进行调查
某些情况下肯定无法ping 127.0.0.1是一个很好的主意。如此处所述,我尝试重置tcp / ip堆栈https://superuser.com/questions/29720/general-failure-when-pinging-to-127-0-0-1
运行命令netsh int ip reset
然后重新启动,我发现然后可以ping 127.0.0.1,并且不再出现该错误。