Я разрешаю пользователям обмениваться фотографиями с другими людьми.Когда пользователь просматривает фотографию и ее описание, он может нажать «поделиться» и загрузить новую страницу.На этой странице заполните адрес электронной почты (и дополнительные комментарии - здесь не проверено) и нажмите «Поделиться фотографией».Система отправляет получателю электронное письмо со ссылкой, а в строке темы указывается имя фотографии.На странице с формой «Поделиться» также отображается список лиц, которым уже была предоставлена фотография.
Полная загрузка страницы является источником жалоб со стороны пользователей.Им нужно модальное окно для быстрой загрузки и минимизации навигации.Я согласен.
Я использую shadowbox.js , чтобы загрузить страницу «Поделиться» в iframe в модальном окне.Он хорошо работает и позволяет при необходимости вернуться к старой странице.
Но - я просто не могу пройти тесты.В частности, Capybara: Webkit просто не может найти фрейм.
Среда: Rail 3.0.9 капибара 0.4.1.2 капибара-webkit 0.5.0 огурец 1.0.2
История огурца:
Feature: Share photo
@javascript
Scenario: User shares photo
When I follow "Share"
Then I should see "Share Old Man Photo" inside "#sb-player"
And I should see information about who I've shared this photo with
When I fill in "Share with" with "joe@example.com"
And I press "Share Photo"
Then "joe@example.com" should receive an email with subject "Old Man photo has been shared with you"
Мой шаг:
Then %r{^I should see "([^"]*)" inside ([^"].*)$} do |expected_text, named_element|
selector = element_for(named_element)
within_frame selector do
page.should have_content(expected_text)
end
end
Сообщение об ошибке:
(::) failed steps (::)
Unable to locate frame. (Capybara::Driver::Webkit::WebkitError)
./features/step_definitions/sharing_steps.rb:94:in `/^I should see "([^"]*)" inside "([^"]*)"$/'
features/user_shares_photo.feature:21:in `Then I should see "Share Old Man Photo" inside "#sb-player"'
Failing Scenarios:
cucumber features/user_shares_photo.feature:19
Я пробовал каждую комбинацию идентификаторов элементов.Я просто не могу заставить Capybara: Webkit распознать iframe.
Есть идеи или решения?Я не могу выполнить тест с ошибкой, и я рассматриваю возможность использования всего подхода iframe, но я бы хотел найти решение.
Спасибо