Вы здесь несколько путаете. Capybara
- это среда тестирования / DSL для Ruby, которую можно использовать с любой из сред выполнения тестов (RSpec, Minitest и т. Д.). Он может использовать ряд различных драйверов для связи с тестируемым веб-приложением.
Драйвер по умолчанию - rack_test, который не поддерживает JS и не может подключаться ни к каким адресам вне тестируемого приложения.
Второй вариант драйвера - selenium-webdriver
, который может управлять несколькими разными настоящими браузерами firefox / chrome / safari / и т. Д. для тестирования и может подключаться к любому действующему URL-адресу. Обратной стороной использования selenium-webdriver в качестве драйвера является то, что он открывает настоящий браузер и, следовательно, обычно работает медленнее с большим объемом памяти.
Другой вариант драйвера - capybara-webkit
, который не имеет заголовка и может также подключаться к любому действующему URL-адресу. Как правило, это быстрее, чем использование селена, однако, поскольку он построен на старой версии QtWebkit, он не поддерживает новые веб-стандарты (ES2015 и т.д.), поэтому, как минимум, вам нужно убедиться, что весь JS перенесен на максимум ES5.
Ничто не мешает вам использовать разные драйверы для разных тестов, чтобы получить преимущества скорости для большинства тестов, а затем использовать настоящий браузер для тестов, которые нуждаются в таких вещах, как WebRTC и т. Д. Capybara README подробно описывает, как это сделать при использовании разных запускающих тестов. (RSpec, Minitest и т. Д.)
person
Thomas Walpole
schedule
23.02.2017