首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Poltergeist条纹checkout.js

Poltergeist条纹checkout.js
EN

Stack Overflow用户
提问于 2014-03-20 17:15:15
回答 2查看 1.7K关注 0票数 7

我试着在我的Rails应用程序中测试Stripe弹出(http://www.stripe.com/checkout)。

我用的是凯巴拉+硒驱动器,一切都很好。加载页面时,checkout.js添加一个iframe,并且我能够访问它。

代码语言:javascript
复制
within_frame('stripe_checkout_app') do
 do something
end

现在,切换到Poltergeist,我得到了一个错误:

失败/错误: within_frame( 'stripe_checkout_app‘) do Capybara::Poltergeist::FrameNotFound:没有找到框架’stripe_checkout_app‘。

如果我看了这一页,就没有了。所以我觉得这个剧本

<script type="text/javascript" src="https://checkout.stripe.com/checkout.js"></script>

在使用Poltergeist运行测试时未加载。

更新

我试着用做测试,结果也一样。

代码语言:javascript
复制
Failure/Error: Capybara.within_frame('stripe_checkout_app') do
 Capybara::Webkit::InvalidResponseError:
   Unable to locate frame.

我也试着等了半分钟!使用

代码语言:javascript
复制
sleep 30

这些是我的网页模拟设置:

代码语言:javascript
复制
RSpec.configure { |config|
WebMock.disable_net_connect!(allow_localhost: true)
 }

更新2:

“stripe_checkout_app”是iframe的名字。

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-21 13:07:54

对于任何感兴趣的人,我找到了一种方法来访问iframe,而无需使用“iframe_frame”,只需使用Poltergeist开关窗口方法。

代码语言:javascript
复制
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

票数 8
EN

Stack Overflow用户

发布于 2016-01-09 10:15:15

如果您对phantomjs 1.9.7有类似的问题,这是因为SSL设置。您可以使用以下方法禁用检查:

代码语言:javascript
复制
Capybara.register_driver :poltergeist do |app|
  options = {
    phantomjs_options: ['--ssl-protocol=any', '--ignore-ssl-errors=yes'],
    inspector: false
  }
  Capybara::Poltergeist::Driver.new(app, options)
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22540453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档