2016-05-05 12 views
0

Ich benutze rspec + capybara + poltergeist. Wenn ich versuche, den Mauszeiger zu simulieren, klicke auf ein Element und erhalte einen Fehler. Problem sollte sein, sie zusammen zu verwenden, da, wenn ich den Klick hinter dem Hover lösche, es keinen Fehler wirft.capybara feature spec hover + click

Wie kann ich das schaffen?

scenario "successfully", js: true do 
    sign_in(user) 
    visit root_path 
    within "#postcomment-#{post_comment.id}" do 
    page.find(".post-comment-body").hover.find("#activate-comment-edit-#{post_comment.id}").click 
    end 
    .... 


error: 
1) updating post successfully 
Failure/Error: page.find(".post-comment-body").hover.find("#activate-comment-edit-#{post_comment.id}").click 

NoMethodError: 
    undefined method `click' for #<Enumerator:0x007fe255dd4b10> 
+0

Sie müssen separaten Aufruf für beide machen. Ich meine Hover und Click Event – Jeet

Antwort

1

#hover gibt das aufgerufene Element nicht zurück. Aus diesem Grund können Sie entweder speichern Sie das Element wie

finden
within "#postcomment-#{post_comment.id}" do 
    body = page.find(".post-comment-body") 
    body.hover 
    body.find("#activate-comment-edit-#{post_comment.id}").click 
end 

oder zu halten, eine Zeile

within "#postcomment-#{post_comment.id}" do 
    page.find(".post-comment-body").tap(&:hover).find("#activate-comment-edit-#{post_comment.id}").click 
end