0

В настоящее время я использую Capybara selenium/webkit в функциональном тестировании, я действительно не понимаю, как это работает за сценой.Rails Capybara selenium test на конкретную версию браузера и визуализировать тест

Проверяя документ Capybara, по умолчанию селен использует браузер Firefox для тестирования. Он даже не упоминает, какую версию он использует. (Я не устанавливал Firefox, я думаю, что он пришел вместе с драгоценным камнем selenium-webdriver или capybara-webkit)

Мой вопрос:

1) Если я хочу, чтобы вызвать мой тест на конкретной версии браузера, это возможно? Как я могу это сделать? Например, в браузере Chrome версии 53.1.2.

2) Автоматический функциональный тест, проведенный за сценой, можно ли визуализировать процедуру тестирования? Например, драйвер Selenium запускает браузер и визуализирует эффект щелчка/прокрутки/перетаскивания вместе с запуском теста?

+0

Я нашел этот сайт, объясняющий 'webkit' и' selenium' совершенно ясно, надеюсь, что это полезно для других людей: http://tutorials.jumpstartlab.com/topics/capybara/capybara_with_selenium_and_webkit.html – GMsoF

ответ

1

Жесткий камень selenium-webdriver не устанавливает firefox, и если вы не видите открытие браузера при запуске тестов, вы фактически не используете selenium-webdriver, поскольку при использовании с настольными браузерами (firefox, chrome, IE , Safari), он откроет эти браузеры, и вы сможете наблюдать за их взаимодействием с тестируемым приложением.

При выполнении тестов Capybara использует драйвер, идентифицированный Capybara.current_driver в начале каждого теста. В обычной конфигурации Capybara (при использовании rspec) текущий драйвер устанавливается в переднем блоке - https://github.com/teamcapybara/capybara/blob/2.12.0/lib/capybara/rspec.rb#L26 - либо в значение Capybara.javascript_driver, либо Capybara.default_driver в зависимости от того, имеет ли тест тег метаданных js: true или нет - см. https://github.com/teamcapybara/capybara/blob/2.12.0/README.md#drivers и https://github.com/teamcapybara/capybara/blob/2.12.0/README.md#using-capybara-with-rspec.

По умолчанию Capybara.javascript_driver = :selenium и по умолчанию для этого драйвера будет использоваться firefox. Поэтому, если вы добавите метаданные js: true к одному из ваших тестов, он будет использовать драйвер selenium и попытаться запустить вашу систему, установленную firefox (в зависимости от установленных версий вам также может понадобиться установить geckodriver), вызывая ошибки, если FF не установлен. Вы также захотите прочитать о database_cleaner в Capybara README и правильно установить его для тестирования. Если вы не укажете метаданные js: true, то (по умолчанию) ваш тест использует драйвер rack_test, который не обрабатывает CSS или JS и действительно полезен только для очень простых тестов обработки форм и ссылок. Если вы хотите, чтобы все ваши тесты выполнялись с помощью селена, вы можете установить Capybara.default_driver = :selenium, который затем будет использоваться для всех тестов (вам все равно нужно будет настроить database_cleaner)

В Capybara README есть инструкции по настройке драйвера селена для использования Chrome в случае необходимости (вам также потребуется установить хромированный реверс), а документация selenium-webdriver будет содержать сведения о том, как вы можете указать альтернативные экземпляры браузеров (если у вас установлено несколько версий).

Если с другой стороны вы хотите использовать драгоценный камень capybara-webkit (или полтергейст), вам нужно указать имя зарегистрированного драйвера - например Capybara.javascript_driver = :webkit/:poltergeist - см. Их README для получения подробной информации о различных параметрах, которые вы можете указать для каждого из этих драйверов при их регистрации.

+0

да! теперь я знаю, где я был в замешательстве, я видел «selenium-webdriver» в своем файле gem, я думал, что использую его, но на самом деле, я не использую селен, я фактически использую 'capybara-webkit', поэтому нет браузер был запущен вместе с моим тестом. – GMsoF

+1

@GMsoF capybara-webkit и poltergeist - оба безголовых драйверов, поэтому с ними нет возможности наблюдать за ходом теста. Они также относительно отстают в веб-технологиях, которые они поддерживают (например, нет поддержки ES5 +, хотя Poltergeist с PhantomJS 2.5, когда стабильность должна быть более актуальной). Если ответ был достаточно полным для вас, не забудьте принять его (галочка), чтобы вопрос был отмечен как ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^