Как использовать Capybara в чистом Ruby (без Rails)?
Я пытаюсь заставить Capybara работать в простой Ruby script - то есть без/вне Rails. Здесь script:
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
Что я делаю неправильно?
Дополнительная информация:
- Mac OS X 10.5
- ruby 1.8.6 (2009-06-08 patchlevel 369) [универсальный-darwin9.0]
- capybara (0.3.9)
Спасибо!
Нил
Примечание. В комментарии от 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
Мысли?
Спасибо!
Ответы
Ответ 1
Вот что-то, что кажется мне полезным:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'http://www.google.com'
module MyCapybaraTest
class Test
include Capybara::DSL
def test_google
visit('/')
end
end
end
t = MyCapybaraTest::Test.new
t.test_google
Ответ 2
Это показывает, что даже некорректная документация живет вечно. Capybara README обычно рекомендует включать Capybara в глобальное пространство имен, это плохая идея действительно и испортит любое количество случайных вещей. Вы должны включить Capybara в свой собственный модуль или класс и использовать это вместо этого.
Ознакомьтесь с README для использования лучших рекомендаций.
Ответ 3
Пожалуйста, проверьте этот пример CapybaraRspec101 и разблокируйте его.
Это небольшой пример для приемочных тестов на http://www.hi5.com с нуля:
- Капибара
- Rspec
- Селен WebDriver
Все инструкции находятся в репо
Ответ 4
Также вы можете использовать Capybara с огурцом. Здесь есть пример, который охватывает все. http://www.swtestacademy.com/ruby-cucumber-and-capybara-on-windows/