我有一个链接:
link_to %q(<span class='glyphicon glyphicon-trash'/>).html_safe, feed_item, data: {confirm: 'Are you sure?',toggle: 'tooltip'}, method: :delete, title: 'Delete', id: 'delete_post'
和以下功能规范代码
page.accept_confirm do
click_link 'delete_post'
end
我收到以下错误
Capybara::Webkit::ClickFailed:
Failed to find position for element /html/body/div[@id='wrapper']/div[@id='page-content-wrapper']/div/div[@id='main']/div[@id='main_content']/div[4]/div/div/div[1]/h3/div/a[@id='delete_post']
如果我用一些文本例如用字形替换跨度“删除”,测试有效。
这似乎与 Unresolved issue 相关。在 Github 上,可能与 CSS 覆盖可点击的 html 元素有关。但是,我无法理解在这种情况下这种重叠是如何发生的或如何纠正它。
将图标用于“编辑”或“删除”等常见任务已成为一种常见做法,因此最好找到解决方案。
我该如何解决这个问题?
最佳答案
尽管 Obromios 的回答会起作用,但我认为改变渲染图标的方式并不是一个好主意。特别是因为您需要添加 如果 Rails.env.test? 到每个图标渲染,以使测试工作。
你可以做的是使用这个:
find('.glyphicon.glyphicon-trash').trigger('click')
而不是这个:
click_link 'delete_post'
关于ruby-on-rails - Capybara-webkit 无法处理与 Bootstrap glyphicon 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611241/