我正在使用 RSpec/Capybara 和 chrome/firefox 进行测试。
我正在使用 PayPal 的 iframe/Javascript 购买流程。
当用户在弹出的浏览器窗口中完成购买交易时,该窗口将关闭并调用按钮/注册函数内的回调函数(抱歉描述不佳 - 我不是 Javascript 专家)。
PayPal 功能如下所示:
function paypal_button(plan_id, container_id) {
paypal.Buttons({
createSubscription: function(data, actions) {
return actions.subscription.create({
'plan_id': plan_id
});
},
onCancel: function (data) {
console.log("canceled");
},
onError: function (err) {
console.log("error")
},
onApprove: function(data, actions) {
stuff
}
}).render(container_id);
}
在上面的代码中,stuff对 DOM 进行了一系列修改,包括提交表单。我不认为我可以在表单提交之前拦截 Javascript,所以,真的,我只需要了解我在 RSpec 测试中可以做什么来触发这个 onApprove 函数。
onApprove 记录在这里: https ://developer.paypal.com/docs/checkout/integrate/#5-capture-the-transaction
我对这一切都错了吗?我应该做一些完全不同的事情来测试这个级别的页面内 Javascript 吗?