使用Robot Framework的Input Text关键字无法完整输入卡号该如何解决?
Robot Framework 一次性输入格式化卡号的解决方案
你遇到的问题是目标站点的卡号输入框自带分段格式化逻辑,SeleniumLibrary 默认的Input Text关键字赋值时会被前端JS逻辑截断,仅能录入前4位。以下是两种可实现一次性输入完整卡号的方案:
方案1:使用Press Keys关键字模拟真实按键输入
Press Keys是SeleniumLibrary内置的关键字,对应原生Selenium的sendKeys能力,会模拟真实用户逐个输入字符,完全匹配前端输入框的事件监听规则,不会被格式化逻辑截断。
示例代码如下:
Make Payment [Documentation] Enter the card details and make payment Click Element ${PAY_WITH_CARD_BUTTON} Sleep 1 Select Frame ${FRAME} Input Text ${EMAIL_FIELD} ${email} # 先激活卡号输入框 Click Element ${CARD_NUMBER_FIELD} # 直接传入完整卡号即可一次性输入完成 Press Keys ${CARD_NUMBER_FIELD} 4242424242424242
方案2:通过JavaScript直接赋值
如果站点输入框的校验逻辑特殊,Press Keys仍有问题,可以直接调用JS修改输入框值后主动触发输入事件,绕开前端输入限制:
Make Payment [Documentation] Enter the card details and make payment Click Element ${PAY_WITH_CARD_BUTTON} Sleep 1 Select Frame ${FRAME} Input Text ${EMAIL_FIELD} ${email} # 直接给卡号输入框赋值完整卡号,替换选择器为你的卡号框对应CSS选择器即可 Execute JavaScript document.querySelector('#cardNumber').value = '4242424242424242' # 主动触发input事件,让前端格式化、校验逻辑正常执行 Execute JavaScript document.querySelector('#cardNumber').dispatchEvent(new Event('input'))
内容的提问来源于stack exchange,提问作者Poulomi Mitra
相关产品推荐
相关产品推荐

