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
私は何が間違っているのですか?
いくつかの詳細情報:
ありがとう!
ニール
注: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
考え?
ありがとう!
これが私にとってうまくいくように見えるものです:
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
それは、間違ったドキュメントでさえ永遠に生きていることを示しています。 Capybara READMEグローバル名前空間にCapybaraを含めることを推奨するために使用されます。これは本当に悪い考えであり、ランダムなものをいくつでも台無しにします。Capybaraを含める必要があります。独自のモジュールまたはクラスで、代わりにそれを使用してください。
現在のベストプラクティスについては、READMEを確認してください。
これをチェックしてください CapybaraRspec101 例とフォークしてください。
これは、 http://www.hi5.com ゼロから使用する受け入れテストの小さな例です。
すべての指示はリポジトリにあります