You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Katalon自定义手机号输入方法调用Integer.length()报错咨询

错误原因排查
  • 核心错误:你在代码第一行通过a = Integer.valueOf(a)将入参强制转换为Integer类型,但Java/Groovy的Integer类没有length()方法,也不支持substring()截取操作,这两个都是String类的方法,所以调用时直接抛出方法不存在的异常。
  • 额外逻辑错误:原代码中数字3对应的点击对象是按钮4,数字4对应的点击对象是按钮3,会导致输入的3和4实际输入颠倒。
  • 潜在问题:手机号可能存在前导0的场景,转Integer会直接丢失前导0,导致最终输入内容和预期不符。
修复方案

直接使用字符串类型处理手机号即可,修复后的完整代码如下:

def void enterPhoneNumber(String phoneNum){
    int max = phoneNum.length()
    for(int i=0; i< max; i++){
        def ref = phoneNum.substring(i, i + 1)
        switch (ref) {
            case "0":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 0' , GlobalVariable.avgWait);
                break;
            case "1":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 1' , GlobalVariable.avgWait);
                break;
            case "2":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 2' , GlobalVariable.avgWait);
                break;
            case "3":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 3' , GlobalVariable.avgWait);
                break;
            case "4":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 4' , GlobalVariable.avgWait);
                break;
            case "5":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 5' , GlobalVariable.avgWait);
                break;
            case "6":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 6' , GlobalVariable.avgWait);
                break;
            case "7":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 7' , GlobalVariable.avgWait);
                break;
            case "8":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 8' , GlobalVariable.avgWait);
                break;
            case "9":
                Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 9' , GlobalVariable.avgWait);
                break;
            default:
                break;
        }
    }
}

如果调用方法时传入的是数字类型的手机号,调用前转成字符串即可,示例:

enterPhoneNumber(generatedPhoneNum.toString())

内容的提问来源于stack exchange,提问作者nadiakhouri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:45:06