Sauce::Capybara::Driver uses a deprecated 'within_frame' method - ruby

It's seems like gem sauce-3.5.11 uses a deprecated 'within_frame' method.I have also tried to change to older version but I get the same error
undefined method `within_frame' for class `Sauce::Capybara::Driver' (NameError)
/Users/user/.rvm/gems/ruby-2.2.4/gems/sauce-3.5.11/lib/sauce/capybara.rb:41:in `'
/Users/user/.rvm/gems/ruby-2.2.4/gems/sauce-3.5.11/lib/sauce/capybara.rb:12:in `'
/Users/user/.rvm/gems/ruby-2.2.4/gems/sauce-3.5.11/lib/sauce/capybara.rb:11:in `'
/Users/user/.rvm/gems/ruby-2.2.4/gems/sauce-3.5.11/lib/sauce/capybara.rb:10:in `'
RubyGems Environment:
- RUBYGEMS VERSION: 2.4.8
- RUBY VERSION: 2.2.4 (2015-12-16 patchlevel 230) [x86_64-darwin14.5.0]
- INSTALLATION DIRECTORY: /Users/user/.rvm/gems/ruby-2.2.4
- RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-2.2.4/bin/ruby
- EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/ruby-2.2.4/bin
- SPEC CACHE DIRECTORY: /Users/user/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/user/.rvm/rubies/ruby-2.2.4/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/user/.rvm/gems/ruby-2.2.4
- /Users/user/.rvm/gems/ruby-2.2.4#global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/user/.rvm/gems/ruby-2.2.4/bin
- /Users/user/.rvm/gems/ruby-2.2.4#global/bin
- /Users/user/.rvm/rubies/ruby-2.2.4/bin
- /Users/user/.rvm/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/X11/bin

The sauce gem has not been upgraded to support the frames API change that occurred in the selenium driver (which the sauce driver derives from) in Capybara 2.8, and since the entire sauce gem is deprecated I would guess it's not going to be. You can either lock to capybara 2.7.1 or look further back in your stacktrace, figure out why the code is calling within_frame directly on the driver, and instead try calling it on the session like it should be.
page.driver.within_frame(...) # wrong
page.within_frame(...) # correct

Related

uninitialized constant Timer::Timers

I am trying to do a task periodically, and I have seen this. I have installed the gem 'timer' using bundle install
and then here is my Timer class:
require 'timers'
class Timer
def initialize
timers = Timers::Group.new
timers.every(5) { puts "Another 5 seconds" }
end
end
but when i run the class i face with the error:
`require': cannot load such file -- timers (LoadError)
and here is the output of my gem env :
RubyGems Environment:
- RUBYGEMS VERSION: 2.5.1
- RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.3.0
- USER INSTALLATION DIRECTORY: /home/ubuntu/.gem/ruby/2.3.0
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.3.0/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.3.0/bin
- SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/rvm/gems/ruby-2.3.0
- /usr/local/rvm/gems/ruby-2.3.0#global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-document"
- "install" => "--no-rdoc --no-ri"
- "update" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/ubuntu/.nvm/versions/node/v4.4.3/bin
- /usr/local/rvm/gems/ruby-2.3.0/bin
- /usr/local/rvm/gems/ruby-2.3.0#global/bin
- /usr/local/rvm/rubies/ruby-2.3.0/bin
- /mnt/shared/bin
- /home/ubuntu/workspace/node_modules/.bin
- /home/ubuntu/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /mnt/shared/sbin
- /opt/gitl
- /opt/go/bin
- /mnt/shared/c9/app.nw/bin
- /usr/local/rvm/bin
This error tells us the code you are trying to load is not on the LOAD_PATH. When you require 'timers' you are telling Ruby to search the LOAD_PATH for a file called timers.rb and it cannot be located. Installing the gem does not put the gem on your load path.
It sounds like you are not using Bundler to manage your dependencies. Once you start depending on 3rd party code, you really should start using Bundler. It will put all the code you need on the LOAD_PATH and provide a ton of other helpful features.
If you are just messing around, one option you can do is:
ruby -I <path/to/timers/lib>
This will allow Ruby to locate timers.rb

Cucumber: command not found (suddenly broken)

I am trying to self-teach Cucumber and suddenly my terminal is giving me the error
-bash: cucumber: command not found
I have checked out a couple of 'similar' threads on SA and their either Rails related or aren't particularly helpful. For example this one
says about checking your gem env but doesn't give any clue as to what to check it for (at least for a UNIX/Mac noob like me). As the above post suggests typing which cucumber gives no output and my gem env looks something like this:
- RUBYGEMS VERSION: 2.4.6
- RUBY VERSION: 2.1.3 (2014-09-19 patchlevel 242) [x86_64-darwin14.0]
- INSTALLATION DIRECTORY: /Users/username/.rvm/gems/ruby-2.1.3
- RUBY EXECUTABLE: /Users/username/.rvm/rubies/ruby-2.1.3/bin/ruby
- EXECUTABLE DIRECTORY: /Users/username/.rvm/gems/ruby-2.1.3/bin
- SPEC CACHE DIRECTORY: /Users/username/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/username/.rvm/gems/ruby-2.1.3
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin/Users/username/.rvm/gems/ruby-2.1.3/bin
- /Users/username/.rvm/gems/ruby-2.1.3#global/bin
- /Users/username/.rvm/rubies/ruby-2.1.3/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Users/username/.rvm/bin
if anyone can shed any light on this I'd really appreciate it. Cucumber was working fine not so long ago.
doesn't work
сucumber --guess --tags #ie features...
works
bundle exec cucumber --tags #ie features...
The problem is only on IE9.
Is that problem of version ruby, cucumber?
Ruby 2.2.0 Cucumber 1.3.18

encrypted_strings (LoadError) received when running spotify ruby script

I am trying to run a Ruby script to setup a token exchange with spotify. I know nothing about Ruby, so am at a loss at how to resolve the following error in response to the following command:
ruby ./spotify_token_swap.rb
/Users/jeff/.rvm/rubies/ruby-2.1.5-dev/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- encrypted_strings (LoadError)
from /Users/jeff/.rvm/rubies/ruby-2.1.5-dev/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from ./spotify_token_swap.rb:6:in `<main>'
Line 54 of kernel_require.rb is:
return gem_original_require(path)
If it helps, here is my RubyGems environment:
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.4.5
- RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin14.0]
- INSTALLATION DIRECTORY: /Users/jeff/.rvm/gems/ruby-2.1.5-dev
- RUBY EXECUTABLE: /Users/jeff/.rvm/rubies/ruby-2.1.5-dev/bin/ruby
- EXECUTABLE DIRECTORY: /Users/jeff/.rvm/gems/ruby-2.1.5-dev/bin
- SPEC CACHE DIRECTORY: /Users/jeff/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/jeff/.rvm/gems/ruby-2.1.5-dev
- /Users/jeff/.rvm/gems/ruby-2.1.5-dev#global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/jeff/.rvm/gems/ruby-2.1.5-dev/bin
- /Users/jeff/.rvm/gems/ruby-2.1.5-dev#global/bin
- /Users/jeff/.rvm/rubies/ruby-2.1.5-dev/bin
- /Users/jeff/.rvm/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/ImageMagick/bin
I am guessing that there is either a missing gem, or a problem with my path. But I really don't know. Can someone provide some handholding on how to resolve this problem?
Good debugging idea, but you went a bit too deep :) You don't need to know how Kernel.require works, just that
If the file named cannot be found, a LoadError will be raised.
You probably just need to install the encrypted_strings gem.

<RubyGems> How to change gem environment settings?

I installed rbenv and set up ruby and gems. Now if I run gem env then I got the following:
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.0 (2013-12-25 patchlevel 0) [x86_64-darwin13.0]
- INSTALLATION DIRECTORY: /Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /Users/myusername/Tools/.rbenv/versions/2.1.0/bin/ruby
- EXECUTABLE DIRECTORY: /Users/myusername/Tools/.rbenv/versions/2.1.0/bin
- SPEC CACHE DIRECTORY: /Users/myusername/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-13
- GEM PATHS:
- /Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- /Users/myusername/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/myusername/Tools/.rbenv/versions/2.1.0/bin
- /Users/myusername/Tools/.rbenv/libexec
- /Users/myusername/Tools/.rbenv/plugins/ruby-build/bin
- /opt/local/bin
- /opt/local/sbin
- /Users/myusername/Tools/.rbenv/shims
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
- /Users/myusername/Tools/./bin
- /Users/myusername/Tools/.rbenv/bin
Well.. all looks good except for SPEC CACHE DIRECTORY and GEM PATHS, all others have self-configured paths. (So I really don't want any dev-related directories directly placed in my user home folder.) Is there a way to flexibly change these two env variables without affecting normal functioning of ruby, gem and rbenv etc.?
Thanks!
Actually I searched online and found the solution.
Just put the following in your .profile (Max OS) or .bashrc (Linux)
export GEM_PATH=/Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
export GEM_SPEC_CACHE=/Users/myusername/Tools/.rbenv/versions/2.1.0/lib/ruby/gems/specs
Make sure the folder you put there existed. Then source the .profile or .bashrc, or simply restart your terminal. It is tested working now my env is correct.
Reference:
https://github.com/rubygems/rubygems/pull/489

Gem Install Error: NameError

I havent been been able to install any Gem since I updated to Mac OSX Lion.
Every time I try to install any gem the terminal window hangs.
I've uninstalled everything including ruby and reinstalled Ruby Gems but that didn't solve the problem.
After running:
gem install rails --debug
I get this (only first lines shown):
Exception `NameError' at /opt/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:177 - uninitialized constant Gem::Commands::InstallCommand
Exception `LoadError' at /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- psych
Exception `LoadError' at /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:62 - no such file to load -- psych
Exception `Errno::EEXIST' at /opt/local/lib/ruby/1.8/fileutils.rb:243 - File exists - /Users/marcogallen/.gem/specs/rubygems.org%80
Exception `Errno::EEXIST' at /opt/local/lib/ruby/1.8/fileutils.rb:243 - File exists - /Users/marcogallen/.gem/specs/gems.github.com%80
Exception `EOFError' at /opt/local/lib/ruby/1.8/net/protocol.rb:135 - end of file reached
Exception `EOFError' at /opt/local/lib/ruby/1.8/net/protocol.rb:120 - end of file reached
Exception `EOFError' at /opt/local/lib/ruby/1.8/net/http.rb:1060 - end of file reached
GEM env gives this:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.8
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-11
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- /Users/[user]/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org/", "http://gems.github.com"]
- REMOTE SOURCES:
- http://rubygems.org/
- http://gems.github.com
I'm totally clueless here, I hope some one can give me a hint or something.
MAC Book PRO running OSX Lion
Thanks
Marco
Hey I had a really similar problem,
I upgraded to Ruby 1.9.2 using RVM Click here!
It has its own way of managing Gems for each instance of Ruby and helped me understand where the gems were kept etc... If you have a read you should get there!
If it doesn't help I am sorry, but might be worth a try!

Resources