u19*_*964 20 testing rspec ruby-on-rails logout capybara
我在rails 3.2.3和capybara上使用ruby来帮助创建请求规范.我的目标是创建一个测试注销的规范请求.网页:
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
Welcome <%= current_user.first_name + " "+ current_user.last_name%>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<a href="#">
<%= link_to "Sign out", destroy_user_session_path, :method => :delete%>
</a>
</ul>
</li>
Run Code Online (Sandbox Code Playgroud)
对于测试,我有
describe "sign out" do
it "should let user to sign out" do
login_as user, :scope => :user
# click_on "Welcome #{user.first_name} #{user.last_name}"
# Now click on Sign out
end
end
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用capybara点击退出,因为它位于下拉菜单中,因此在页面上不可见.有人知道吗 ?
有没有其他方法可以点击下拉菜单中的元素?
我通过点击两个链接测试了一个下拉列表
click_link "Welcome #{current_user.first_name} #{current_user.last_name}"
click_link 'sub link'
Run Code Online (Sandbox Code Playgroud)
你好我最终想通了.我不得不用来xpath找到链接.基于html以上所述,这是我做的:
在rspec中,我写道:
page.find(:xpath, "//a[@href='/users/sign_out']").click
Run Code Online (Sandbox Code Playgroud)
我使用"// a [@href ='/ users/sign_out']"的原因是因为它link_to "Sign out", destroy_user_session_path, :method => :delete被编译到<a href="/users/sign_out" ...网页上.
它的工作原理:-)
哦顺便说一句,我找到了这个有用的链接:http://www.suffix.be/blog/click_image_in_link_capybara
一个更简单的解决方案就是这样:
select("您要从菜单中选择的选项", :from => "标签名称")
注意:“标签名称”是<label>. 但是,您也可以使用<select>此处的“id”或“name”属性,我认为这更好,因为您可能会在某个时候更改标签文本,如果您这样做,您的测试仍然会通过。
| 归档时间: |
|
| 查看次数: |
15064 次 |
| 最近记录: |