Capybara: Webkit не может найти iframe или его содержимое

Я разрешаю пользователям обмениваться фотографиями с другими людьми. Когда пользователь просматривает фотографию и ее описание, они могут нажать «Поделиться», и новая страница загрузится. На этой странице введите адрес электронной почты (и необязательные комментарии - здесь не проверено) и нажмите «Поделиться фотографией». Система отправит получателю электронное письмо со ссылкой, а в строке темы будет указано имя фотографии. Страница с формой «Поделиться» также отображает список лиц, которым уже предоставлен доступ к фотографии.

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

] Я использую 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, но я хотел бы найти решение.

Спасибо

8
задан glimpse nirvana 31 July 2011 в 17:55
поделиться