Capybara :: ExpectationNotMet: Тайм-аут ожидания ожидания сброса сеанса Selenium Rails 3 - PullRequest
0 голосов
/ 07 января 2020

У меня проблема с Capybara (2.18.0) и Webdrivers (4.1.2) в Rails 3.22.2.5.

Мои тесты соответствуют ожиданиям, но кажется, что Selenium зависает при попытке закрыть или сброс, в результате чего тест не пройден. Странно, но раньше этот тест работал нормально, и теперь с «нет» изменений я получаю это.

2018-01-12 00:00:00 WARN Selenium [DEPRECATION] Selenium::WebDriver::Error::UnhandledAlertError is deprecated. Use Selenium::WebDriver::Error::UnexpectedAlertOpenError (ensure the driver supports W3C WebDriver specification) instead.
        lists only periods that are semesters (FAILED - 1)
************************************************************************
Factory Bot Payload
{:pay_seniority=>{:create=>1}, :assignment_note=>{:create=>1}, :user=>{:create=>1}, :period=>{:create=>2}}
************************************************************************

Failures:

  1) looking at your shifts new unavailability specific time create by semester lists only periods that are semesters
     Failure/Error: example.run

     Capybara::ExpectationNotMet:
       Timed out waiting for Selenium session reset
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara/selenium/driver.rb:145:in `reset!'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara/session.rb:127:in `reset!'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara.rb:314:in `block in reset_sessions!'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara.rb:314:in `reverse_each'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara.rb:314:in `reset_sessions!'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/capybara-2.18.0/lib/capybara/rspec.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/features/your_shifts_spec.rb:6:in `block (3 levels) in <top (required)>'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/timecop-0.9.1/lib/timecop/timecop.rb:201:in `travel'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/timecop-0.9.1/lib/timecop/timecop.rb:129:in `send_travel'
     # /home/jforgue/.rvm/gems/ruby-2.3.8/gems/timecop-0.9.1/lib/timecop/timecop.rb:51:in `freeze'
     # ./spec/features/your_shifts_spec.rb:5:in `block (2 levels) in <top (required)>'
     # ./spec/spec_helper.rb:104:in `block (2 levels) in <top (required)>'

Я вполне уверен, что предупреждение об устаревании связано с тем, что Капибара устарела, а потому что это Rails 3.22.2.5 Capybara и Webdrivers не могут быть обновлены до более высокой версии.

Это мой тест:

it 'lists only periods that are semesters' do
  create :period, :semester, name: 'fall'
  create :period, name: 'not fall'
  visit current_path
  click_link 'New Unavailability'
  click_link 'Specific time'
  click_link 'Create by Semester'
  expect(page).to have_select 'unavailability_period_id', options: ['fall']
end

А вот как я устанавливаю свой драйвер в мой spec_helper:

Capybara.javascript_driver = :selenium_chrome_headless
...