Полтергейст полоса checkout.js
Я пытаюсь проверить в моем Rails-приложении всплывающее окно проверки полосы (http://www.stripe.com/checkout).
Я использовал Capybara + селен-драйвер, и все работало хорошо. Когда страница загружена, checkout.js добавляет iframe, и я смог получить к нему доступ
within_frame('stripe_checkout_app') do
do something
end
Теперь, переключаясь на Poltergeist, я получаю эту ошибку:
Ошибка / Ошибка: в пределах_фрейма ('stripe_checkout_app') делать Capybara :: Poltergeist :: FrameNotFound: фрейм 'stripe_checkout_app' не был найден.
и если я проверю страницу, там не будет iframe. Поэтому я думаю, что этот сценарий
<script type="text/javascript" src="https://checkout.stripe.com/checkout.js"></script>
не загружается, когда я запускаю тест с Poltergeist.
Обновить
Я попытался запустить тест с Capybara-webkit, с тем же результатом.
Failure/Error: Capybara.within_frame('stripe_checkout_app') do
Capybara::Webkit::InvalidResponseError:
Unable to locate frame.
Я тоже пытался ждать полминуты! с
sleep 30
Это мои настройки webmock:
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>