水豚功能规范悬停+单击
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
我正在使用 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