gpt4 book ai didi

ruby-on-rails - Poltergeist Stripe checkout.js

转载 作者:行者123 更新时间:2023-12-04 11:06:50 24 4
gpt4 key购买 nike

我正在尝试在我的 Rails 应用程序中测试 Stripe 结帐弹出窗口 ( http://www.stripe.com/checkout )。

我正在使用 Capybara + selenium-driver 并且一切正常。
页面加载后,checkout.js 添加了一个 iframe,我可以访问它

within_frame('stripe_checkout_app') do
do something
end

现在,切换到 Poltergeist,我收到此错误:

Failure/Error: within_frame('stripe_checkout_app') do Capybara::Poltergeist::FrameNotFound: The frame 'stripe_checkout_app' was not found.



如果我检查页面,则没有 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

这些是我的网络模拟设置:
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>

最佳答案

对于任何感兴趣的人,我找到了一种无需使用“within_frame”即可访问 iframe 的方法,只需使用 Poltergeist 切换窗口方法即可。

stripe = page.driver.window_handles.last

page.within_window stripe do
fill_in "Name", :with => "Name"
fill_in "Street", :with => "Street"
fill_in "Postal", :with => 10000
fill_in "City", :with => "Berlin"

click_button "Payment Info"
end

对于西类牙人,我在这里找到了解决方案: numerica latina .

关于ruby-on-rails - Poltergeist Stripe checkout.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com