Capybara:如何测试页面的标题?

Ner*_*ian 68 rspec ruby-on-rails capybara

在使用Steak,Capybara和RSpec的Rails 3应用程序中,如何测试页面标题?

Lar*_*ter 101

从版本2.1.0的水豚到会话上有方法来处理标题.你有

page.title
page.has_title? "my title"
page.has_no_title? "my not found title"
Run Code Online (Sandbox Code Playgroud)

所以你可以测试标题:

expect(page).to have_title "my_title"
Run Code Online (Sandbox Code Playgroud)

根据github.com/jnicklas/capybara/issues/863,以下内容也与capybara 2.0合作:

expect(first('title').native.text).to eq "my title"
Run Code Online (Sandbox Code Playgroud)


jpw*_*ynn 14

这适用于Rails 3.1.10,Capybara 2.0.2和Rspec 2.12,并允许匹配部分内容:

find('title').native.text.should have_content("Status of your account::")
Run Code Online (Sandbox Code Playgroud)


Dyl*_*kow 13

您应该能够搜索title元素以确保它包含您想要的文本:

page.should have_xpath("//title", :text => "My Title")
Run Code Online (Sandbox Code Playgroud)

  • 此代码不再适用于capybara 2:https://github.com/jnicklas/capybara/issues/863 (8认同)