Я пытаюсь запустить Capybara простым скриптом на Ruby - т.е. без / вне Rails. Вот сценарий:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
include Capybara
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'
visit('/')
Проблема в том, что когда я запускаю это, я получаю эту ошибку:
NameError: uninitialized constant Capybara::Session
at top level in dsl.rb at line 52
method gem_original_require in custom_require.rb at line 36
method require in custom_require.rb at line 36
at top level in capybara_test.rb at line 3
method gem_original_require in custom_require.rb at line 31
method require in custom_require.rb at line 31
at top level in capybara_test.rb at line
Что я делаю не так?
Дополнительная информация:
Спасибо!
Neal
Примечание: согласно комментарию от jnicklas я пробовал это, что соответствует новый README более внимательно:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
Capybara.default_driver = :selenium
Capybara.app_host = 'http://www.google.com'
module MyCapybaraTest
include Capybara
def test_google
visit('/')
end
end
К сожалению, я все еще вижу ту же ошибку:
NameError: uninitialized constant Capybara::Session
Мысли?
Спасибо!
Это говорит о том, что даже неверная документация живет вечно. README Capybara раньше рекомендовал включать Capybara в глобальное пространство имен, это действительно плохая идея, и она портит любое количество случайных вещей. Вы должны включить Capybara в свой собственный модуль или класс и использовать его вместо этого.
Ознакомьтесь с текущими передовыми практиками в README.