selenium webdriver异常

Sma*_*olf 14 ruby selenium qa

今天,当我使用selenium webdrive时,我收到了一个错误.我的平台是mac osx.这是我的异常日志.

ruby-1.9.2-p0 > Selenium::WebDriver.for :firefox
Selenium::WebDriver::Error::WebDriverError: unable to bind to locking port 7054 within 45 seconds
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/socket_lock.rb:48:in `lock'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/socket_lock.rb:29:in `locked'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/bridge.rb:21:in `initialize'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/common/driver.rb:38:in `new'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/common/driver.rb:38:in `for'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver.rb:51:in `for'
 from (irb):8
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:44:in `start'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in `start'
 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands.rb:23:in `<top (required)>'
 from script/rails:6:in `require'
 from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样.我的firefox路径是默认路径.谢谢您的帮助!!

jar*_*rib 20

WebDriver使用端口7054("锁定端口")作为互斥锁,以确保我们不会同时启动两个Firefox实例.您创建的每个新实例将在启动浏览器之前等待互斥锁,然后在浏览器打开后立即释放它.

所以这可能确实是一个资源问题 - 以前创建的驱动程序需要超过45秒的时间才能启动并且在那段时间内保持锁定状态.

如果在您的情况下这似乎不太可能,那么了解哪个进程持有锁将会很有趣.尝试lsof -i TCP:7054在超时之前的45秒内运行.

使用-d(或设置$DEBUG = true)运行ruby 也将为进一步调试提供一些有用的信息.


kxh*_*tiz 6

我做了lsof -i TCP:7054并找到了相应的process_id,然后最终杀死了给定的进程kill -9 process_id

然后再次尝试测试,它确实有效:)