I recently received the following errors when running capybara with envjs. Strangely, there was a kind of double stack trace. Here are the exeptions:
===
WARNIING: [Thu Mar 10 2011 09:54:41 GMT-0600 (CST)] {ENVJS} Exception while dispatching events: a.ownerDocument is null
a.ownerDocument is null (Johnson::Error)
===
===
WARNIING: [Thu Mar 10 2011 09:54:41 GMT-0600 (CST)] {ENVJS} Exception while dispatching events: a.ownerDocument is null
oopse a.ownerDocument is null
undefined
inline:129 [JavaScript]
===
===diff
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -1,4 +1,4 @@
-ENV["RAILS_ENV"] ||= "cucumber"
+ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
@@ -20,7 +20,6 @@ require 'capybara/session'
Capybara.default_selector = :css
require 'capybara/envjs'
-Capybara.javascript_driver = :envjs
Before do
User.test = Factory.create(:user)
===
and for reference:
===
diff config/environments/test.rb config/environments/cucumber.rb
< config.gem 'factory_girl'
< config.gem 'rspec', :lib => false
< config.gem 'rspec-rails', :lib => false
< config.gem 'capybara-envjs', :lib => 'capybara/envjs'
---
> config.gem 'capybara-envjs', :lib => 'capybara/envjs'
> config.gem 'factory_girl'
> config.gem 'cucumber', :lib => false
> config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails'))
> config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
===
my complete features/support/env.rb file:
===
ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
puts "========================================"
puts "RAILS_ENV is #{RAILS_ENV} "
puts "========================================"
require File.expand_path(File.dirname(__FILE__) + '/../../test/helpers/user.rb')
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'capybara/rails'
require 'capybara/cucumber'
require 'capybara/session'
Capybara.default_selector = :css
require 'capybara/envjs'
Before do
User.test = Factory.create(:user)
Given 'I am logged in'
System.destroy_all
System.load
end
ActionController::Base.allow_rescue = false
Cucumber::Rails::World.use_transactional_fixtures = true
if defined?(ActiveRecord::Base)
begin
require 'database_cleaner'
DatabaseCleaner.strategy = :truncation
rescue LoadError => ignore_if_database_cleaner_not_present
end
end
===
===
WARNIING: [Thu Mar 10 2011 09:54:41 GMT-0600 (CST)] {ENVJS} Exception while dispatching events: a.ownerDocument is null
a.ownerDocument is null (Johnson::Error)
===
===
WARNIING: [Thu Mar 10 2011 09:54:41 GMT-0600 (CST)] {ENVJS} Exception while dispatching events: a.ownerDocument is null
oopse a.ownerDocument is null
undefined
inline:129 [JavaScript]
===
===diff
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -1,4 +1,4 @@
-ENV["RAILS_ENV"] ||= "cucumber"
+ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
@@ -20,7 +20,6 @@ require 'capybara/session'
Capybara.default_selector = :css
require 'capybara/envjs'
-Capybara.javascript_driver = :envjs
Before do
User.test = Factory.create(:user)
===
and for reference:
===
diff config/environments/test.rb config/environments/cucumber.rb
< config.gem 'factory_girl'
< config.gem 'rspec', :lib => false
< config.gem 'rspec-rails', :lib => false
< config.gem 'capybara-envjs', :lib => 'capybara/envjs'
---
> config.gem 'capybara-envjs', :lib => 'capybara/envjs'
> config.gem 'factory_girl'
> config.gem 'cucumber', :lib => false
> config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails'))
> config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
===
my complete features/support/env.rb file:
===
ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
puts "========================================"
puts "RAILS_ENV is #{RAILS_ENV} "
puts "========================================"
require File.expand_path(File.dirname(__FILE__) + '/../../test/helpers/user.rb')
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'capybara/rails'
require 'capybara/cucumber'
require 'capybara/session'
Capybara.default_selector = :css
require 'capybara/envjs'
Before do
User.test = Factory.create(:user)
Given 'I am logged in'
System.destroy_all
System.load
end
ActionController::Base.allow_rescue = false
Cucumber::Rails::World.use_transactional_fixtures = true
if defined?(ActiveRecord::Base)
begin
require 'database_cleaner'
DatabaseCleaner.strategy = :truncation
rescue LoadError => ignore_if_database_cleaner_not_present
end
end
===