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