2013-02-27 3 views
0

Я тестирую функцию на промежуточном сервере, для которой требуется базовая аутентификация для доступа к сайту. Я получил это работает, используя следующее:Проблемы с аутентификацией в Capybara

Capybara.app_host = "http://user:[email protected]" 

В какой-то момент в сценарии я получить доступ к странице, которая использует протокол HTTPS вместо HTTP и требует от меня, чтобы поместить в систему пользователя и пароль еще раз, чтобы продолжить. Было бы легко, если бы я снова воспользовался визитом, но я действительно хочу нажать на ссылку ...

Как я могу пройти мимо этого? Я поступил в Google как сумасшедший, но не мог найти решение, которое работает.

Я нашел это: http://theadmin.org/articles/test-http-basic-authentication-in-rails/, но я понятия не имею, как его реализовать. Я совершенно новичок в этом, поэтому я мог бы пропустить очевидное.

Может кто-нибудь указать мне в правильном направлении?

Вот мой код:

env.rb

require 'capybara/cucumber' 

Capybara.app_host = "https://user:[email protected]" 
Capybara.default_driver = :selenium 
Capybara.default_wait_time = 5 
Capybara.ignore_hidden_elements = true 
Capybara.current_session.driver.browser.manage.window.resize_to(1024, 1000) 

checkout_steps.rb (сокращенная)

Given /^I am on the main page$/ do 
    visit('/') 
end 

When /^I navigate to the page with the available boxes$/ do 
    page.find(:xpath, "//a[contains(@href,'how-it-works')]").click 
    page.find(:xpath, "//a[contains(@class,'join')]").click 
end 

When /^I choose a monthly subscription$/ do 
    page.find(:xpath, "//span[contains(@class,'title') and .[contains(., 'Unbefristetes Abo')]]").click 
    page.find_button("Jetzt Bestellen").click 
end 
+0

Попытайтесь положить 'Capybara.visit ''' в env.rb –

+0

@ AndreyBotalov: Я пробовал это, но у меня все равно получается тот же диалог входа. Какова была твоя мысль за этим предложением? – TrashyMcTrash

+0

Волшебно, это работает в моем случае –

ответ

0

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

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