2015-07-03 2 views
0

У меня есть приложение для рельсов с кучей интеграционных тестов, выполняемых с помощью полтергейста драйвера capybara. Они все отлично работают.Извлечение внешних страниц с помощью capybara poltergeist

У меня есть один тест, где мне нужно ударить внешний URL, например http://www.google.com - Я не могу заставить это работать, он всегда просто загружает локальное приложение.

Если я, например, сделать следующее:

visit "http://google.com" 
page.html 

Он выводит HTML первой страницы моих рельсов приложения, а не HTML в google.com

Кто-нибудь получило удаленные URLs работать с полтергейстом наряду с местными тестами?

ответ

1

Оказалось, что мои тесты фактически использовали драйвер по умолчанию, а poltergeist используется, только если вы вручную переключитесь на использование драйвера js. Драйвер стойки не может получить доступ к внешним URL-адресам, поэтому вам нужно убедиться, что вы переключитесь на драйвер js. Поэтому, чтобы исправить выше, вы просто должны сделать:

Capybara.current_driver = Capybara.javascript_driver 
visit "http://google.com" 
page.html 

и для других с той же проблемой, ее стоит проверить https://gist.github.com/turadg/5399790

+1

В качестве альтернативы, очень распространенным решением является помечать тесты, требующие драйвер Js с: js => true. Например RSpec.feature «Регистрация пользователя», js: true do – tgf

+0

Правда, но в моем случае я использую minitest, а не rspec. – Nick

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