Rspec 使用Quilljs和Capybara webkit进行水豚试验

Rspec 使用Quilljs和Capybara webkit进行水豚试验,rspec,capybara,capybara-webkit,quill,Rspec,Capybara,Capybara Webkit,Quill,我正在尝试使用RSpec功能测试来测试我的rails应用程序。我正在使用Quilljs处理富文本,只是想测试创建帖子的能力 # erb view <div id="post-form-container"> <%= form_for :post, url: posts_path, html: {id: 'post-form'} do |f| %> <div class="form-group"> <%= f.hidden_fiel

我正在尝试使用RSpec功能测试来测试我的rails应用程序。我正在使用Quilljs处理富文本,只是想测试创建帖子的能力

# erb view
<div id="post-form-container">
  <%= form_for :post, url: posts_path, html: {id: 'post-form'} do |f| %>
    <div class="form-group">
      <%= f.hidden_field :discussion_id, value: discussion.id %>
      <%= f.hidden_field :content, class: 'form-control', id: 'post-content-input' %>
      <div id="editor-container"></div>
    <%= f.button 'Post', class: 'btn btn-primary', id: 'post-button' %>
      </div>
  <% end %>
</div>

# spec
scenario 'can post in discussion', :js do
  login_as user
  visit community_group_path(community_group)
  within('form#post-form') do
    find('div[contenteditable="true"].ql-editor').send_keys 'This is a new post.'
    click_on 'Post'
  end
  expect(page).to have_content 'This is a new post.'
end
更新: 我已经意识到我需要允许像下面这样的Quill的外部URL,但它仍然不起作用

Capybara::Webkit.configure do |config|
  config.allow_url("https://cdn.quilljs.com/*")
end
更新2:我让我的应用程序JS异步加载,这导致了问题。把它改成这个就成功了

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, async: Rails.env.production? %>
true,异步:Rails.env.production?%%>

有两件事解决了我的问题:

允许外部套筒URL

# spec/support/capybara.rb
Capybara::Webkit.configure do |config|
  config.allow_url("https://cdn.quilljs.com/*")
end
在测试期间同步加载应用程序JS

<%# app/views/layouts/application.html.erb %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, async: Rails.env.production? %>

是否为true,异步:Rails.env.production?%%>

有两件事解决了我的问题:

允许外部套筒URL

# spec/support/capybara.rb
Capybara::Webkit.configure do |config|
  config.allow_url("https://cdn.quilljs.com/*")
end
在测试期间同步加载应用程序JS

<%# app/views/layouts/application.html.erb %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, async: Rails.env.production? %>

是否为true,异步:Rails.env.production?%%>

请注意,使用时不需要进行所有这些额外调整
Selenium driver(铬合金无头或非无头)

请注意,使用时不需要进行所有额外调整 硒驱动器(铬合金无头或非无头)