我正在使用带有Cucumber和Capybara的Ruby on Rails.
我将如何测试一个简单的确认命令("你确定吗?")?
另外,我在哪里可以找到有关此问题的进一步文档?
我正在使用RSpec2和Capybara进行验收测试.
我想断言链接在Capybara中是否被禁用.我怎样才能做到这一点?
我有这个:
<input class="string optional"
id="course_group_courses_attributes_2_name"
name="course_group[courses_attributes][2][name]"
placeholder="Lengua"
size="15"
type="text" />
</div>
Run Code Online (Sandbox Code Playgroud)
如何通过ID填写该字段?
我是ruby的新手,但在尝试安装capybara以在我的系统上运行测试时,我收到以下错误.我在运行OSX
my_app$ gem install capybara-webkit
Building native extensions. This could take a while...
ERROR: Error installing capybara-webkit:
ERROR: Failed to build gem native extension.
/Users/joe/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
Gem files will remain installed in /Users/joe/.rvm/gems/ruby-1.9.2-p290/gems/capybara-webkit-0.7.2 for inspection.
Results logged to /Users/joe/.rvm/gems/ruby-1.9.2-p290/gems/capybara-webkit-0.7.2/./gem_make.out
Run Code Online (Sandbox Code Playgroud)
这是gem_make.out的结果
/Users/joe/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
Run Code Online (Sandbox Code Playgroud) 我知道在Capybara,你可以这样做:
page.should have_css("ol li", :count => 2)
Run Code Online (Sandbox Code Playgroud)
但是,假设该页面仅具有一个匹配元素,则该错误不是非常具有描述性:
1) initial page load shows greetings
Failure/Error: page.should have_css("ol li", :count => 2)
expected css "ol li" to return something
Run Code Online (Sandbox Code Playgroud)
而不是这个相当模糊的错误消息,有没有办法以这样的方式编写断言,即错误输出将类似于'匹配'ol li',期望:2,找到:1'.显然我可以自己为这样的行为制作一个自定义逻辑 - 我问有没有办法在开箱即用的情况下做到这一点?
对于它的价值,我使用的是Selenium驱动程序和RSpec.
我正在使用许多jQuery插件,它经常创建没有id或其他标识属性的DOM元素,并且在Capybara中获取它们的唯一方法(例如用于点击) - 是为了让他们的邻居(其祖先的另一个孩子)首先.但我没有找到任何地方,例如Capybara支持这样的事情:
find('#some_button').parent.fill_in "Name:", :with => name
Run Code Online (Sandbox Code Playgroud)
?
加载页面后,我有运行和隐藏的代码,并根据xhr返回的数据显示各种项目.
我的集成测试看起来像这样:
it "should not show the blah" do
page.find('#blah').visible?.should be_true
end
Run Code Online (Sandbox Code Playgroud)
当我在上下文中手动转到该测试运行的页面时,#blah 并不像我预期的那样可见.我怀疑Capybara正在查看页面的初始状态(在这种情况下是不可见的),在JS运行之前评估DOM的状态并且未通过测试.
是的,我设置:js => true了包含的描述块:)
任何想法将不胜感激!我希望我不必在这里故意拖延,感觉不稳定,会减慢速度.
也许这实际上不是我遇到的问题,但似乎当我"click_link"一个带有target ="_ blank"的链接时,会话将焦点保持在当前窗口.
所以我要么能够切换到新窗口,要么忽略_blank属性 - 本质上,我只是希望它实际上转到链接指示的页面,这样我就能确保它是正确的页面.
我使用webkit和selenium驱动程序.
我在下面提交了我的调查结果.非常感谢更彻底的答案.
此外,这只适用于selenium - 相当于webkit驱动程序(或指出我自己可以发现它的位置)将非常感激.
在测试场景时,cucumber我在运行rspec测试时遇到以下错误
无法在60秒内获得稳定的firefox连接(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError)
使用ruby (1.9.2) selenium-webdriver (2.27.2)和firefox (19.0)
使用rspec-rails (2.12.1),capybara (2.0.2)和其他几个宝石,我也添加了launchy宝石,但他们似乎没有问题.而我正在使用Windows 7.
ruby-on-rails cucumber capybara rspec-rails selenium-webdriver
在使用Steak,Capybara和RSpec的Rails 3应用程序中,如何测试页面标题?