【问题标题】:Capybara not working with x-editable formsCapybara 不使用 x 可编辑表单
【发布时间】:2015-03-13 00:26:19
【问题描述】:

我正在尝试使用 capybara 和 poltergeist 在 Rails 4、Bootstrap 3 和 Boostrap-editable-rails 0.0.7 上测试我的内联可编辑元素,并遵循 the x-editable docs 中的示例。 Capybara 似乎点击了元素,但它们向表单元素的转换从未发生。在开发模式下浏览 UI 时它工作正常。

<a class="edit_form" id="edit-note-category-<%= jira.id %>" href="#" data-type="select" 
    data-source="<%=@note_categories%>" data-value="<%=note.note_category.try(:id) %>" 
    data-resource="note" data-name="note_category_id" data-pk="<%=note.id%>" 
    data-url="/correct/path">
</a>

# CUCUMBER STEP DEFINITIONS
When(/^I click the element for the (.*?)$/) do |element|  
    element = element.downcase.gsub(' ', '-')  
    elem_id = "#edit-#{element}-#{@jira.id}"  
    find(elem_id).trigger('click')  
end

When(/^I change the note's category to "(.*?)"$/) do |category_name|
    select category_name
end

在尝试选择类别名称时,测试失败并出现 ElementNotFound 异常。开发模式下的 html 显示在单击元素后创建了一个选择,但在相同操作后的中间测试屏幕截图显示没有这样的选择元素。

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap cucumber capybara poltergeist


    【解决方案1】:

    我知道你问这个问题已经很长时间了,但是当我遇到可能是同一个问题时,我偶然发现了这个问题。我设置了 X-Editable 以在更新字段时发出 PATCH 请求。这在生产/开发中运行良好,但是当我们想为其添加功能规范时,我们遇到了困难。我使用 selenium 驱动程序对其进行了测试,它也有效。问题显然在于使用 Poltergeist。

    事实证明,PhantomJS(Poltergeist 的底层引擎)目前存在一个与发出 PATCH 请求(https://github.com/ariya/phantomjs/issues/11384)有关的错误。虽然拥有更多语义会很好,但我的解决方案是将请求更改为 PUT。

    类似这样的:

    function enableInlineEditable() {
      $('.inline-editable').editable({
        ajaxOptions: { type: 'PUT' },
      });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多