22

リクエストスペックの作成を支援するために、Ruby on Rails 3.2.3 とカピバラを使用しています。私の目標は、ログアウトをテストする仕様要求を作成することです。ウェブページ:

<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>

テストのために、私は持っています

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

[カピバラを使用してサインアウト] をクリックする方法がわかりません。ドロップダウン メニューにあるため、ページに表示されません。誰か知っていますか ?

ドロップダウン メニューの要素をクリックする他の方法はありますか?

4

5 に答える 5

8

両方のリンクをクリックするだけでドロップダウンをテストしました

click_link "Welcome #{current_user.first_name} #{current_user.last_name}"
click_link 'sub link'
于 2012-06-30T02:50:24.300 に答える
5

こんにちは、やっとわかりました。xpathリンクを見つけるために使用する必要がありました。上記に基づいてhtml、ここに私がしたことがあります:

rspec では、次のように書きました。

page.find(:xpath, "//a[@href='/users/sign_out']").click

「//a[@href='/users/sign_out']」を使用する理由は、Web ページ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

于 2012-06-30T01:20:32.093 に答える
1

これに対する私の例

find("ol.nya-bs-select.btn-default.form-control[ng-model='scope.values.countries']")
    .find_button("Nothing selected").click
于 2015-10-19T18:29:04.927 に答える
1

同様の問題がありましたが、ドロップダウンにはテキストがなく、アイコンのみがありました。

%li#user-menu.dropdown
  %a.dropdown-toggle{ href: "#", data: { toggle: "dropdown" }, role: "button", aria: { haspopup: "true", expanded: "false" } }
    %i.fa.fa-user
    %span.caret
  %ul.dropdown-menu
    %li.logout-text= link_to "Log Out", destroy_user_session_path, :method => :delete

私の仕様では、次を使用しました:

def when_I_sign_out
  find('#user-menu').click
  click_on 'Log Out'
end
于 2016-02-11T19:15:06.033 に答える