Как закрыть браузер с Capybara?

У меня есть ситуация, когда я использую (используя: selenium driver) несколько браузеров с Capybara для тестирования моего front-end. Как я могу закрыть некоторые из них с помощью Capybara, когда они не нужны?

Ответ 1

Если вкладки/окна открываются с помощью JavaScript, JavaScript может закрыть их. Вы можете выполнить JS в тесте Capybara, используя page.execute_script.

page.execute_script "window.close();"

Ответ 2

также:

page.driver.browser.close

Определенно работает для Selenium, хотя он выглядит, возможно, не для capybara-webkit.

Ответ 3

Внутри файла env.rb вставьте этот код

After do |scenario| 
print "OZONEEEEE"
page.execute_script "window.close();"
# restart Selenium driver
Capybara.send(:session_pool).delete_if { |key, value| key =~ /selenium/i } 
end

Ответ 4

Если вы хотите закрыть каждое окно после завершения каждого теста, а не закрывать все окна в конце тестового костюма, попробуйте:

after do  
  Capybara.current_session.driver.quit  
end