У меня проблема с 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