我正在尝试使iPa内的“使用PayPal付款”按钮自动化的付款系统。我已经搜索了TestCafe的支持页面,但似乎无法解决问题。
TestCafe认为它已经单击了按钮,因此在下一步(输入电子邮件地址)时失败。
我正在使用什么:
const payPalFrame = Selector('#paypal-button iframe');
const payPalButton = Selector('[name="paypal"]')
async payWithPaypal () {
await t
.switchToIframe(payPalFrame)
.click(payPalButton)
.switchToMainWindow();
}
我试图编写一个ClientFunction,但是对JS / Node来说还是比较新的东西,什么也没用。
答案 0 :(得分:5)
也许您可以确保以这种方式使用该按钮:
await t
.switchToIframe(payPalFrame)
.expect(payPalButton.with({visibilityCheck: true}).exists)
.ok({timeout: 30000})
.hover(payPalButton)
.click(payPalButton)
.switchToMainWindow();
如果这不起作用,则应尝试单击父容器按钮:
const payPalButton = Selector('[name="paypal"]').parent();
await t
.switchToIframe(payPalFrame)
.expect(payPalButton.with({visibilityCheck: true}).exists)
.ok({timeout: 30000})
.hover(payPalButton)
.click(payPalButton)
.switchToMainWindow();
答案 1 :(得分:0)
testcafe中存在一个错误,即iframe有时不加载其样式表,因此您可能要检查iframe中需要单击的标记是否具有正确的宽度,高度和位置。