Ruby on rails Selenium::WebDriver::错误::未知错误:无效的内容类型

Ruby on rails Selenium::WebDriver::错误::未知错误:无效的内容类型,ruby-on-rails,ruby,selenium,rspec,capybara,Ruby On Rails,Ruby,Selenium,Rspec,Capybara,在我的Ruby on Rails 5应用程序中,我的以下测试开始失败,代码没有任何更改: require 'rails_helper' RSpec.describe 'Agent Groups Index Page' do let(:active_user) {FactoryBot.create(:agent)} let(:user_group) {FactoryBot.create(:group, servicing_agent_id: active_user.id)} let(

在我的Ruby on Rails 5应用程序中,我的以下测试开始失败,代码没有任何更改:

require 'rails_helper'

RSpec.describe 'Agent Groups Index Page' do
  let(:active_user) {FactoryBot.create(:agent)}
  let(:user_group) {FactoryBot.create(:group, servicing_agent_id: active_user.id)}
  let(:other_user) {FactoryBot.create(:agent, :other_agent)}
  let(:other_group) {FactoryBot.create(:group, servicing_agent_id: other_user.id)}
  let(:zip_code) {FactoryBot.create(:zip_code)}

  before do
    visit new_user_session_path
    fill_in 'user_email', with: active_user.email
    fill_in 'user_password', with: active_user.password
    click_button 'Login'
  end

  context 'has no groups' do
    before do
      other_user
      other_group
      visit groups_path()
    end

    scenario 'sees empty list', js: true do
      expect(page).to have_content 'No data available in table'
    end
  end
end
它返回以下错误:

Failure/Error: click_button 'Login'
 Selenium::WebDriver::Error::UnknownError:
   Invalid Content-Type
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:81:in `new'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:81:in `create_response'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/default.rb:104:in `request'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/bridge.rb:164:in `execute'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/w3c/bridge.rb:535:in `execute'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/w3c/bridge.rb:358:in `click_element'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/common/element.rb:72:in `click'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/selenium/node.rb:94:in `click'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/element.rb:133:in `block in click'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/base.rb:83:in `synchronize'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/element.rb:133:in `click'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/actions.rb:58:in `click_button'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/session.rb:740:in `block (2 levels) in <class:Session>'
 # /Users/override23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'
 # ./spec/support/helpers/session_helpers.rb:7:in `signin'
 # ./spec/features/agents/groups/groups_index_spec.rb:11:in `block (2 levels) in <top (required)>'
失败/错误:单击按钮“登录”
Selenium::WebDriver::错误::未知错误:
无效的内容类型
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/response.rb:69:in'assert_ok'
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/response.rb:32:在“初始化”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:81:“新建”
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:81:在“创建\响应”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/default.rb:104:在“请求”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/http/common.rb:59:in'call'
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/bridge.rb:164:在“执行”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/w3c/bridge.rb:535:在“执行”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/remote/w3c/bridge.rb:358:在“单击元素”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/selenium-webdriver-3.11.0/lib/selenium/webdriver/common/element.rb:72:在“单击”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/selenium/node.rb:94:在“单击”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/element.rb:133:在“单击中块”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/base.rb:83:在“同步”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/element.rb:133:在“单击”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/node/actions.rb:58:在“单击按钮”中
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/session.rb:740:in `块(2层)in'
#/Users/overridee23/.rvm/gems/ruby-2.5.1@-global/gems/capybara-3.0.2/lib/capybara/dsl.rb:51:in `块(2层)in'
#/spec/support/helpers/session\u helpers.rb:7:in'signin'
#./spec/features/agents/groups/groups\u index\u spec.rb:11:in“block(2级)in”

你知道什么会导致这种奇怪的行为吗?

我对基于Docker的CI设置也有同样的问题。我可以通过指定水豚对话的Selenium映像的版本来修复它

因此在
docker compose.yml中,我们的配置从:

  firefox:
    image: selenium/standalone-firefox
    volumes:
      - /dev/shm:/dev/shm
致:


除上述内容外,我们在
Gemfile
中为本项目指定了
capybara
selenium webdriver
的版本,以确保兼容性。我们将在将来对它们进行同步升级,但这是一个很好的方法,可以让它们同时工作。

看起来您正在使用水豚,所以我添加了该标签。当你提出与水豚相关的问题时,请确保添加水豚标签。stacktrace中列出的宝石都已过时-我猜你的浏览器版本已更新,不再与你使用的selenium兼容。
  firefox:
    image: selenium/standalone-firefox:3.11
    volumes:
      - /dev/shm:/dev/shm