2

使用动作文本,我有一个drill名为

应用程序/模型/drill.rb

class drill
   has_rich_text :content
end

我有一个表格可以使用 trix 编辑器

<%= form_for @drill do |f| %>
  <div class="field">
    <%= f.label :content %>
    <%= f.rich_text_area :content %>
  </div>
  <%= f.submit "Update", class: 'btn btn-primary' %>
<% end -%>

这会产生一个用于输入文本的空间,标签为“内容”,一个 id 为 的输入,一个 id 为drill_content_trix_input_drilltrix-editor元素drill_content。在 rspec 功能规范中,我尝试过

it 'fills the content field', js: true do
    ...
    fill_in 'drill_content_trix_input_drill', with: 'Do full swing very slowly'
end

但这给了

Capybara::ElementNotFound:
       Unable to find field "drill_content_trix_input_drill" that is not disabled

我也尝试过fill_in 'Content'fill_in 'drill_content'但看到了类似的错误。我该如何解决?

4

1 回答 1

1

干得好:

  def fill_in_trix_editor(id, with:)
    find(:css, "##{id}").click.set(with)
  end
于 2020-05-25T04:53:41.413 回答