Rspec 脚本标记未在Capybara/PhantomJS中呈现
我正在使用Capybara和PhantomJS来运行一些集成测试。我们测试的一部分是订阅表单,它使用一个条带嵌入表单来呈现支付按钮。在我们的测试中,当我运行print page.html时,输出中有:Rspec 脚本标记未在Capybara/PhantomJS中呈现,rspec,capybara,phantomjs,stripe-payments,poltergeist,Rspec,Capybara,Phantomjs,Stripe Payments,Poltergeist,我正在使用Capybara和PhantomJS来运行一些集成测试。我们测试的一部分是订阅表单,它使用一个条带嵌入表单来呈现支付按钮。在我们的测试中,当我运行print page.html时,输出中有: <form accept-charset="UTF-8" action="/subscription" class="plan PlusMonthly" id="plan-PlusMonthly" method="post"> <div style="margin:0;
<form accept-charset="UTF-8" action="/subscription"
class="plan PlusMonthly" id="plan-PlusMonthly" method="post">
<div style="margin:0;padding:0;display:inline"></div>
<input name="utf8" type="hidden" value="✓"></div>
<input id="plan_id" name="plan_id" type="hidden" value="3">
<script src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-key="my_test_key"
data-label="$9.95"
data-name="Subscribe"
data-description="Billed per month. Cancel at any time."
data-image="/assets/avatar_t.png"
data-amount="995"
data-email="user2@gmail.com"
data-allow-remember-me="false"
data-panel-label="Pay {{amount}} per month">
</script>
</form>
版本
水豚:2.4.1
恶鬼:1.5.0
PhantomJS:1.9.7该按钮标记为“$49.95”,您试图单击“$9.95”。也许我错过了一些我看不到的东西。哎呀,这是个打字错误。但问题是,该按钮甚至不会在测试中呈现。标签是用来呈现按钮的,不管出于什么原因,它都不会被执行。你试过用chrome或firefox驱动程序运行它吗?这听起来像是脚本先决条件的问题;用你的眼睛看它可能有助于调试。@tmg我使用的是Poltergeist屏幕截图命令,果然按钮没有渲染。我目前正在Docker内部运行,因此获得像Selenium这样的驱动程序可能很困难。嗯,可能只是时间问题,您可以通过几次睡眠进行测试。但听起来脚本可能不起作用;可能是条带配置问题?您还可以查看poltergeist中的page.driver.network_流量,或者查看是否无法连接远程web检查器并对其进行调试。祝你好运@tmg使用网络流量,我发现一些资产https://s3.amazonaws.com/.../facebook_share_icon.gif 返回状态200,但其他类似条带的则不返回:响应URLhttps://checkout.stripe.com/checkout.js 地位有趣的是,它根本不返回任何状态。我把睡眠时间提高到了90,但是运气不好。你是说它从来没有检索到那个脚本?听起来你需要调试网络连接。可以从使用curl从测试内部获取脚本开始,看看会发生什么。
<button class="stripe-button-el" type="submit" style="visibility: visible;">
<span style="display: block; min-height: 30px;">$9.95</span>
</button>
Failure/Error: subscribe
Capybara::ElementNotFound:
Unable to find button "$9.95"