Error Watir Browser.default and Browser.new

This is my first time playing with watir using this site as a guide. I get an error in a simple program (below) - it does not work on the first line unnecessarily, as shown.

If, instead of launching what is shown below, I delete this line, it opens an empty Firefox browser, but does not follow any other instructions. It never ends, and when I interrupt it, I get another error.

I would appreciate suggestions on how to proceed, and would respond to requests for more information. I'm on a 64-bit Mac. Thanks!


Simple program

require 'rubygems' require 'watir' Watir::Browser.default = 'firefox' browser = Watir::Browser.new browser.goto("http://www.weather.com") sleep 5 browser.close 

Attempt to start the program

 matt$ ruby watir_weather.rb /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:64: stack level too deep (SystemStackError) 

IRB Attempt

 matt$ irb 1.9.3-p385 :001 > require 'watir' => true 1.9.3-p385 :002 > Watir::Browser.default = 'firefox' SystemStackError: stack level too deep from /Users/matt/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/irb/workspace.rb:80 Maybe IRB bug! 1.9.3-p385 :003 > exit 

Alternative program

 require 'rubygems' require 'watir' #Watir::Browser.default = 'firefox' browser = Watir::Browser.new browser.goto("http://www.weather.com") sleep 5 browser.close 

Alternative error

 matt$ ruby watir_weather.rb ^C/Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:95:in `sleep': Interrupt from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:95:in `wait' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:88:in `with_timeout' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:23:in `connected?' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:77:in `connect_until_stable' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:37:in `block in launch' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/bridge.rb:20:in `initialize' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/driver.rb:31:in `new' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/driver.rb:31:in `for' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver.rb:67:in `for' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-webdriver-0.6.4/lib/watir-webdriver/browser.rb:46:in `initialize' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:16:in `new' from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:16:in `new' from watir_weather.rb:5:in `<main>' 

Gems (other people seemed to have a ffi addiction problem)

 matt$ gem list *** LOCAL GEMS *** actionmailer (3.2.13, 3.2.11) actionpack (3.2.13, 3.2.11) activemodel (3.2.13, 3.2.11) activerecord (3.2.13, 3.2.11) activeresource (3.2.13, 3.2.11) activesupport (3.2.13, 3.2.11) addressable (2.3.2) annotate (2.5.0) arel (3.0.2) bcrypt-ruby (3.0.1) bigdecimal (1.1.0) bloggy (0.2.1) bootstrap-sass (2.1.0.0) bootstrap-sass-rails (2.2.2.0) bourne (1.1.2) builder (3.0.4) bundler (1.2.3) capybara (1.1.2) childprocess (0.3.8, 0.3.7) classifier (1.3.3) cocaine (0.4.2) coderay (1.0.8) coffee-rails (3.2.2) coffee-script (2.2.0) coffee-script-source (1.6.1, 1.4.0) colorator (0.1) commander (4.1.3) commonwatir (4.0.0) devise (2.2.3) diff-lcs (1.1.3) directory_watcher (1.4.1) domain_name (0.5.11) erubis (2.7.0) excon (0.16.10) execjs (1.4.0) factory_girl (4.1.0) factory_girl_rails (4.1.0) faker (1.0.1) fast-stemmer (1.0.2) ffi (1.3.1) heroku (2.35.0) heroku-api (0.3.7) highline (1.6.18) hike (1.2.1) i18n (0.6.4, 0.6.1) io-console (0.3) jekyll (1.0.0) journey (1.0.4) jquery-rails (2.2.1, 2.0.2) json (1.7.7, 1.7.6, 1.5.4) jwt (0.1.5) kramdown (0.14.2) launchy (2.2.0) liquid (2.5.0) magic_encoding (0.0.2) mail (2.5.3, 2.4.4) maruku (0.6.1) mechanize (2.6.0) metaclass (0.0.1) method_source (0.8.1) mime-types (1.21, 1.20.1) minitest (2.5.1) mocha (0.10.5) multi_json (1.6.1, 1.5.0) net-http-digest_auth (1.3) net-http-persistent (2.8) netrc (0.7.7) newrelic_rpm (3.5.8.72) nokogiri (1.5.9, 1.5.6) ntlm-http (0.1.1) orm_adapter (0.4.0) paperclip (3.4.0) pg (0.14.1, 0.12.2) polyglot (0.3.3) posix-spawn (0.3.6) pry (0.9.11.4) pry-rails (0.2.2) pygments.rb (0.4.2) rack (1.4.5) rack-cache (1.2) rack-contrib (1.1.0) rack-ssl (1.3.3) rack-test (0.6.2) rails (3.2.11) railties (3.2.13, 3.2.11) rake (10.0.3, 0.9.2.2) rdiscount (2.0.7.2) rdoc (3.12.2, 3.12.1, 3.9.5) rest-client (1.6.7) rspec-core (2.12.2) rspec-expectations (2.12.1) rspec-mocks (2.12.2) rspec-rails (2.12.2) rubygems-bundler (1.1.0) rubyzip (0.9.9) rvm (1.11.3.6) s3_swf_upload (0.3.2) safe_yaml (0.7.1) sass (3.2.7, 3.2.5) sass-rails (3.2.6) selenium-webdriver (2.29.0) shoulda-matchers (1.4.2) slop (3.4.3) sprockets (2.2.2) sqlite3 (1.3.7, 1.3.5) syntax (1.0.0) thor (0.17.0) tilt (1.3.5, 1.3.3) treetop (1.4.12) twilio-ruby (3.9.0) tzinfo (0.3.37, 0.3.35) uglifier (1.3.0) unf (0.1.1) unf_ext (0.0.6) warden (1.2.1) watir (4.0.2) watir-webdriver (0.6.4) webrick (1.3.1) webrobots (0.1.1) websocket (1.0.7) xpath (0.1.4) yajl-ruby (1.1.0) 
+4
source share
1 answer

As far as I can see from the loader code , there is no Watir::Browser.default= method, so I assume the cause of the problem.

Instead of setting the default browser, you should pass it to the browser constructor.

 Watir::Browser.new :firefox 

As for your socket error, this is some issue with selenium-webdriver (which supports watir in your case) and requires a few more studies (maybe another question).

+3
source

Source: https://habr.com/ru/post/1480308/


All Articles