Я пытаюсь протестировать в своем приложении Rails всплывающее окно оформления заказа Stripe (http://www.stripe.com/checkout).
Я использовал Capybara + selenium-driver, и все работало хорошо. Когда страница загружается, checkout.js добавляет iframe, и я смог получить к нему доступ.
within_frame('stripe_checkout_app') do
do something
end
Теперь, переключаясь на полтергейст, я получаю эту ошибку:
Сбой/ошибка: inside_frame('stripe_checkout_app') do Capybara::Poltergeist::FrameNotFound: Фрейм 'stripe_checkout_app' не найден.
и если я проверю страницу, там нет iframe. Так что я думаю, что этот сценарий
<script type="text/javascript" src="https://checkout.stripe.com/checkout.js"></script>
не загружается, когда я запускаю тест с полтергейстом.
Обновлять
Я попытался запустить тест с помощью Capybara-webkit с тем же результатом.
Failure/Error: Capybara.within_frame('stripe_checkout_app') do
Capybara::Webkit::InvalidResponseError:
Unable to locate frame.
Я тоже пробовал ждать полминуты! с участием
sleep 30
Это мои настройки веб-макета:
RSpec.configure { |config|
WebMock.disable_net_connect!(allow_localhost: true)
}
Обновление 2:
Stripe_checkout_app — это имя iframe.
<iframe frameborder="0" allowtransparency="true" src="https://checkout.stripe.com/v3" name="stripe_checkout_app" class="stripe_checkout_app" style="z-index: 9999; display: none; background-color: transparent; border: 0px none transparent; overflow-x: hidden; overflow-y: auto; visibility: visible; margin: 0px; padding: 0px; -webkit-tap-highlight-color: transparent; position: fixed; left: 0px; top: 0px; width: 100%; height: 100%;"></iframe>
undefined method 'window_handles' for #<Capybara::Poltergeist::Driver:0x007fa09adde108>
- есть идеи? Спасибо! 06.06.2014bundle update
, я получаюUsing poltergeist (1.0.3)
, что кажется довольно старым. ... проверка моего gemfile показывает, что я заблокировал Capybara до «~› 1.1.2», что ограничило Poltergeist до 1.0.3. Обновление всего до последних драгоценных камней (Capybara 2.3.0 и Poltergeist 1.5.1) все исправило! 07.06.2014