ruby-on-rails - Capybara-webkit 无法处理与 Bootstrap glyphicon 的链接

标签 ruby-on-rails twitter-bootstrap rspec capybara-webkit

我有一个链接:

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/

相关文章:

css - 在文本和图标字体之间保持相同的距离

ruby - 如何在嵌套的 Rspec 共享示例中传递两个级别的变量?

ruby-on-rails - Pow服务器: serving local rails app via myapp. dev.com域

ruby-on-rails - 如何将所有请求记录到 Mongoid 5 中的 Rails 控制台?

css - 为什么 bootstrap .row 类的默认 margin-left 为 -30px?

ruby - 需要和不需要 ActiveSupport 的单元测试

静态页面的 Ruby-on-Rails 教程

ruby-on-rails - 重定向搜索表单

javascript - 使用 AJAX 加载用户名 - Rails

c# - 在 mvc c# 中设置 Bootstrap 模板