【发布时间】:2023-03-08 22:08:01
【问题描述】:
我正在尝试让 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
我做错了什么?
更多信息:
- Mac OS X 10.5
- ruby 1.8.6(2009-06-08 补丁级别 369)[universal-darwin9.0]
- 水豚 (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
想法?
谢谢!
【问题讨论】:
-
最新的api需要包括Capybara::DSL
-
看看这个 github 项目:github.com/searls/remote-capybara-cucumber-example 从那里开始设置一个独立的测试项目非常容易。