2

のインスタンスを開き、Firefoxはワチールwebdriverを(0.9.1)は中止(セレン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がありました。私はコンピュータを再起動し、ルビーとFirefoxに関連するプロセスを強制終了し、それらを再起動し、Firefoxを再インストールしようとしましたが、役に立たない。

+0

FFのインスタンスが表示されていても表示されていないようです。だから、すべてのFirefoxインスタンスを閉じて、 'ps aux | grep firefox'コマンドを実行します。他のfirefoxのインスタンスが表示された場合は、それらを強制終了するか、再起動してください。 –

+0

'sudo kill -9 PID'を使ってプロセスを終了しようとすると、' ps aux | grep firefox'と表示されますが、前回よりPIDが2倍大きく、WatirはまだFirefoxを起動しません。 – andmcadams

+0

私は2日ほど前にかなりよく似た問題を抱えています。あなたは、Firefoxの47バージョンを使用していますか?もしそうなら、46にダウングレードしてみてください.46は私のために働いています。それは "答え"ではありません。しかし、それがうまくいくなら、それを修正しようとする方がより簡単になります。 – Antesser

答えて

5

Mozillaは新しいWebdriverを導入しました。また、firefox 47のバグにより、新しいWebdriverのみがfirefoxで動作します。 「

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

しかし、私はドン:しかしサポートは完全にFirefoxの48

のとしてドロップされるように、私はあなたが以下を使ってRubyで新しいwebdriverをを使用することができる新しいwebdriverをするいずれかの方法を切り替える永久に示唆していますあなたがそれをwatirでも使うことができるかどうかは分かりません。

watermir(私は間違っている可能性があります)でのサポートがまだ完了していないと伝えることができますが、thisプルリクエストが対応していますが、完了またはマージされていません。

あなたがすることができるかのように私には見えます:

browser = Watir::Browser.new :marionette 

ワチールプロジェクトは、新しいドライバを統合完了すると。

+0

私は先にこのディスカッションに就いていませんでした。現在WatirでMarionetteを使用する正しい方法は、 'Watir :: Browser.new:firefox、marionette:true'です。 Selenium 3.0がリリースされ、Watirがそれを要求するように更新すると、Marionetteがデフォルトオプションになります。そのプルリクエストは、WatirがMarionetteをサポートする方法とは関係ありません。 Watirは現在、Seleniumがサポートしている範囲でこれをサポートしています。 Watirが依頼しているマリオネットにはまだ実装されていないコマンドがいくつか存在するため、機能が欠落しています。 – titusfortner

+0

Firefox 47.0.1にアップデートし、selenium-webdriver gem 2.53を使用していることにも注意してください。4は、この特定の問題をMarionetteを使用する必要なく修正します。 – titusfortner

0

最新のwebdriver selenium-webdriver.2.5.4を使用してください。まだseleniumhqでは利用できませんが、それを検索してください。

+0

これが本質的に正しい理由で投票が行われた理由がわかりません。あなたのテストがFirefox 47.0.1で動作するためには、selenium-webdriver gem 2.53.4が必要です – titusfortner

関連する問題