Can't use Cucumber with Webrat and Selenium


#1

Hi,

I followed the instructions at
http://wiki.github.com/aslakhellesoy/cucumber/setting-up-selenium to get
Selenium and Webrat to work with Cucumber. I have no problems using
Webrat but when I switch to use Selenium, I get the following error
message when I try to access the browser(e.g. calling visit(login_path))
in a step definition.

Die angeforderte Adresse ist in diesem Kontext ungültig. - connect(2)
(Errno::EADDRNOTAVAIL)
E:/SOFTWAREENTWICKLUNG/ruby/lib/ruby/1.8/timeout.rb:56:in timeout' (eval):2:invisit’

(for those who don’t speak german: The requested address is invalid in
this context.)

I also tried to use Cucumber and Selenium without Webrat and it works
without any problems.

I’m using Rails 2.3.0, Cucumber 0.2.3, Webrat 0.4.3 and RSpec 1.2.2 on a
WinXP machine.

I would be very pleased if anyone had an idea about the reason for this
failure.

Enrico


#2

Well I can’t help you but I do have a similar problem. In my case
Cucumber-Selenium works, Cucumber-Webrat works but Cucmber-Webrat-
Selenium doesn’t work because Webrat issues requests to www.example.com
and Selenium starts up a mongrel on localhost:3001, connects to it via
Firefox and then throws up when it gets a request to go to
www.example.com.
I need to find a way to change the host name that Webrat uses when it
connects via Selenium.


#3

John S. wrote:

Well I can’t help you but I do have a similar problem. In my case
Cucumber-Selenium works, Cucumber-Webrat works but Cucmber-Webrat-
Selenium doesn’t work because Webrat issues requests to www.example.com
and Selenium starts up a mongrel on localhost:3001, connects to it via
Firefox and then throws up when it gets a request to go to
www.example.com.
I need to find a way to change the host name that Webrat uses when it
connects via Selenium.

In env.rb

Webrat.configure do |config|
config.mode = :selenium
config.application_environment = :test

Tell where the application is running on for selenium to test

config.application_address = “#{app_server_host}”
config.application_port = “#{app_port}”

Tell where selenium server is running on, when not specified defaults

to nil (server starts in webrat process and runs locally)
config.selenium_server_address = “#{selenium_server_host}”
config.selenium_server_port = “4444”

Set the key that Selenium uses to determine the browser running

config.selenium_browser_key = ‘#{browser}’

end


#4

Hello,

I has spork 0.5.0 and worked fine. now I updated to spork 0.5.7 which
seems to break the existing setting. The stack trace looks like this:

Using RSpec
Preloading Rails environment
Loading Spork.prefork block…
uninitialized constant MissingSourceFile (NameError)
/my_proj/vendor/gems/rspec-rails-1.2.6/lib/spec/rails.rb:5
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
gem_original_require' /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:inrequire’
/my_porj/spec/spec_helper.rb:8
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/
spork.rb:11:in prefork' /my_porj/spec/spec_helper.rb:4 /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/../lib/ spork/server.rb:166:inload’
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/
spork/server.rb:166:in preload' /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/../lib/ spork/app_framework/rails.rb:121:inpreload’
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/
spork/server.rb:162:in preload' /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/../lib/ spork.rb:41:inexec_prefork’
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/
spork/server.rb:148:in preload' /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/../lib/ spork/runner.rb:95:inrun’
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/
spork/runner.rb:10:in run' /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/spork:11 /usr/local/bin/spork:19:inload’
/usr/local/bin/spork:19

It’s missing application_controller. THe environment.rb is loaded
before require ‘spec/rails’. Any idea?

Thanks

Yi


#5

On Fri, Jun 19, 2009 at 9:33 AM, David C.removed_email_address@domain.invalid
wrote:

/my_proj/vendor/gems/rspec-rails-1.2.6/lib/spec/rails.rb:5
`preload’
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/spork/runner.rb:10:in
https://rspec.lighthouseapp.com/projects/5645/tickets/839

If so, just remove the conditional from the line that requires environment.rb

If that’s not it, you may want to try the spork google group:

http://groups.google.com/group/sporkgem


#6

On Fri, Jun 19, 2009 at 9:24 AM, Yi Wenremoved_email_address@domain.invalid wrote:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
/usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/…/lib/spork/app_framework/rails.rb:121:in
run' /usr/local/lib/ruby/gems/1.8/gems/timcharper-spork-0.5.7/bin/spork:11 /usr/local/bin/spork:19:inload’
/usr/local/bin/spork:19

It’s missing application_controller. THe environment.rb is loaded before
require ‘spec/rails’. Any idea?

It’s probably because of this:
https://rspec.lighthouseapp.com/projects/5645/tickets/839

If so, just remove the conditional from the line that requires
environment.rb


#7

Yup, removing the condition fixed the problem. Thanks!