Я разрешаю пользователям обмениваться фотографиями с другими людьми. Когда пользователь просматривает фотографию и ее описание, они могут нажать «Поделиться», и новая страница загрузится. На этой странице введите адрес электронной почты (и необязательные комментарии - здесь не проверено) и нажмите «Поделиться фотографией». Система отправит получателю электронное письмо со ссылкой, а в строке темы будет указано имя фотографии. Страница с формой «Поделиться» также отображает список лиц, которым уже предоставлен доступ к фотографии.
Полная загрузка страницы является источником жалоб пользователей. Они хотят, чтобы модальное окно быстро загружалось и минимизировало навигацию. Я согласен.
] Я использую shadowbox.js для загрузки страницы общего доступа в iframe в модальном окне. Он работает хорошо и позволяет при необходимости вернуться к старой странице.
Но - я просто не могу пройти мои тесты. В частности, Capybara: Webkit просто не может найти iframe.
Среда: Рельс 3.0.9 капибара 0.4.1.2 capybara-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, но я хотел бы найти решение.
Спасибо