水豚功能规范悬停+单击

capybara feature spec hover+click

我正在使用 rspec + 水豚 + poltergeist。当我尝试模拟悬停然后单击一个元素时,出现错误。问题应该是将它们一起使用,因为当我从悬停后面删除点击时它不会引发任何错误。

我怎样才能完成这项工作?

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>

#hover 不是 return 它被调用的元素。因此,您可以将找到的元素存储为

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

或者保持一行

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