ruby - selenium webdriver 异常

标签 ruby selenium

我在使用 Selenium webdriver 时遇到错误。我的平台是 macOS。这是我的异常日志。

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>'

我的 Firefox 路径是默认路径。这是怎么发生的?

最佳答案

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

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

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

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

关于ruby - selenium webdriver 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4296235/

相关文章:

python - 无法在 Windows 10 上使用 selenium chromedriver 打开网络浏览器

ruby-on-rails - heroku sqlite 1.3.6 问题?

java - AES-256 : IV vector misunderstanding between Ruby and Java implementations

selenium - 使用 SafariDriver 运行 Selenium 移动测试时设置 UserAgent

python - 由于某种原因无法从 p 标签获取文本 - Selenium (Python)

java - 无法通过 Selenium 和 Java 在 https ://spicejet. com 中选择出发日期

java - 为什么我改进的 Selenium IDE 脚本在 Selenium WebDriver 执行中表现不同?

ruby-on-rails - Heroku rake 数据库 :migrate fails - Missing tasks/rails

Ruby 解析 gzip 二进制字符串

ruby - 使用 ruby​​ 1.9.3 在 Ubuntu 11.10 上安装 ruby​​-rvm