我需要从生成的号码中点击移动键盘
I need to tap on the mobile keyboard from a generated number
我在 Katalon 上制作了这个自定义方法:
def void enterPhoneNumber(a){
a = Integer.valueOf(a)
def ref = ""
int max = a.length()
for(int i=0; i< max; i++){
ref = a.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 - 4' , GlobalVariable.avgWait);
break;
case "4":
Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 3' , 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;
}
}}
但我收到此错误:
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.length() is applicable for argument types: () 值:[]
原因:
com.kms.katalon.core.exception.StepErrorException: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: 没有方法签名: java.lang.Integer.length() 适用于参数类型: () 值: []
可能的解决方案:next()、each(groovy.lang.Closure)、getAt(java.lang.String)、with(groovy.lang.Closure)、signum(int)、wait()
请指教!
您遇到此错误:
groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.length() is applicable
正如它所说的那样 - 整数没有 .length() 方法。
我要猜猜你想做什么,这似乎是读入一个 phone 数字并调用每个数字的“Mobile.tap”方法。在这种情况下,我建议将数字视为字符串,以便您可以遍历每个字符:
void enterPhoneNumber(number) {
String numberAsStr = number as String
numberAsStr.each { digit ->
Mobile.tap("Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - $digit" , GlobalVariable.avgWait);
}
}
解决者:
@Keyword
//tap on related button on numeric keyboard based on phone number passed
def void enterPhoneNumber(a){
def ref = ""
String max = a.length()-1
int maxInt = Integer.valueOf(max)
for(int i=0; i<= maxInt; i++){
ref = a.substring(i, i+1 )
switch (ref) {
case "0":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 0') , 5);
break;
case "1":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 1') , 5);
break;
case "2":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 2') , 5);
break;
case "3":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 3') , 5);
break;
case "4":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 4') , 5);
break;
case "5":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 5') , 5);
break;
case "6":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 6') , 5);
break;
case "7":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 7') , 5);
break;
case "8":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 8') , 5);
break;
case "9":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 9') , 5);
break;
default:
break;
}
}
}
我在 Katalon 上制作了这个自定义方法:
def void enterPhoneNumber(a){
a = Integer.valueOf(a)
def ref = ""
int max = a.length()
for(int i=0; i< max; i++){
ref = a.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 - 4' , GlobalVariable.avgWait);
break;
case "4":
Mobile.tap('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 3' , 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;
}
}}
但我收到此错误: Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.length() is applicable for argument types: () 值:[]
原因: com.kms.katalon.core.exception.StepErrorException: org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: 没有方法签名: java.lang.Integer.length() 适用于参数类型: () 值: [] 可能的解决方案:next()、each(groovy.lang.Closure)、getAt(java.lang.String)、with(groovy.lang.Closure)、signum(int)、wait()
请指教!
您遇到此错误:
groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.length() is applicable
正如它所说的那样 - 整数没有 .length() 方法。
我要猜猜你想做什么,这似乎是读入一个 phone 数字并调用每个数字的“Mobile.tap”方法。在这种情况下,我建议将数字视为字符串,以便您可以遍历每个字符:
void enterPhoneNumber(number) {
String numberAsStr = number as String
numberAsStr.each { digit ->
Mobile.tap("Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - $digit" , GlobalVariable.avgWait);
}
}
解决者:
@Keyword
//tap on related button on numeric keyboard based on phone number passed
def void enterPhoneNumber(a){
def ref = ""
String max = a.length()-1
int maxInt = Integer.valueOf(max)
for(int i=0; i<= maxInt; i++){
ref = a.substring(i, i+1 )
switch (ref) {
case "0":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 0') , 5);
break;
case "1":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 1') , 5);
break;
case "2":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 2') , 5);
break;
case "3":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 3') , 5);
break;
case "4":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 4') , 5);
break;
case "5":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 5') , 5);
break;
case "6":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 6') , 5);
break;
case "7":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 7') , 5);
break;
case "8":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 8') , 5);
break;
case "9":
Mobile.tap(findTestObject('Object Repository/Onboarding/001-Startup page/001-Phone number fields/002-Numeric Keyboard/Button - 9') , 5);
break;
default:
break;
}
}
}