Not able to pass arguments to below

class use_Objects{

def param( String1,String2,String3)
{
TestObject any = new TestObject('dynamic')

any.addProperty('name', ConditionType.EQUALS, String1)

any.addProperty('tag', ConditionType.EQUALS, String2)

any.findProperty('name').setActive(true)

println(String1,String2,String3);
WebUI.click(any)

WebUI.setText(any, String3)

}

}

param(“ctl01$cphMain$answercontrolb1337459bb244e7989effbf59d6cb1c7$txtx02ecc523-2b8f-4e40-a475-84acb1bc5e02”,“input”,“3/17/2020”)

The biggest clue to what is wrong will be contained in the error message. Please post it.

Reason:
groovy.lang.MissingPropertyException: No such property: cphMain for class: Script1585043704472
at Use_Object.run(Use_Object:45)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:105)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1585167297192.run(TempTestCase1585167297192.groovy:23)

This error is caused by the following line:

param("ctl01$cphMain$answercontrolb1337459bb244e7989effbf59d6cb1c7$txtx02ecc523-2b8f-4e40-a475-84acb1bc5e02","input","3/17/2020")

You need to pay attention to $ character. It has a special meaning in a String literal enclosed with “double quotation marks”. See the Groovy Language documentation, “String interplation” section:

Possibly you want to escape a $ to \$ as follows:

param("ctl01\$cphMain\$answercontrolb1337459bb244e7989effbf59d6cb1c7\$txtx02ecc523-2b8f-4e40-a475-84acb1bc5e02","input","3/17/2020")
1 Like

Alternatively you can use ‘single quotation marks’.

param('ctl01$cphMain$answercontrolb1337459bb244e7989effbf59d6cb1c7$txtx02ecc523-2b8f-4e40-a475-84acb1bc5e02',"input","3/17/2020")

In a String enclosed by single quotation marks, $ is just a character. No string interpolation would be done.