# If Else Statement Not Working: Groovlang.MissingMethodException: No signature of method

**URL:** <https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430>\
**Category:** API Testing\
**Tags:** if-else, web-testing, api-testing, katalon-studio, bugs-report\
**Created:** [June 30, 2022, 2:43am UTC](https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430 "2022-06-30T02:43:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![hannah.martin](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/hannah.martin/32/16104_2.png) [@hannah.martin](https://forum.katalon.com/u/hannah.martin)\
**Post date:** [June 30, 2022, 2:43am UTC](https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430/1 "2022-06-30T02:43:44Z")

</div>

I am trying to create a if else statement that if the label value is equals to 0 zero it will failed the step but my code has an error on that part.  
Here’s my code:  
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint  
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW  
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile  
import com.kms.katalon.core.model.FailureHandling as FailureHandling  
import com.kms.katalon.core.testcase.TestCase as TestCase  
import com.kms.katalon.core.testdata.TestData as TestData  
import com.kms.katalon.core.testng.keyword.TestNGBuiltinKeywords as TestNGKW  
import com.kms.katalon.core.testobject.TestObject as TestObject  
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS  
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI  
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows  
import internal.GlobalVariable as GlobalVariable  
import org.openqa.selenium.Keys as Keys  
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint  
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase  
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData  
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject  
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject  
import java.nio.file.Path as Path  
import java.nio.file.Paths as Paths  
import com.kms.katalon.core.testobject.ConditionType as ConditionType  
import org.apache.commons.lang3.StringUtils as StringUtils  
import com.kms.katalon.core.util.KeywordUtil as KeywordUtil

string (Failure = WebUI.getText(findTestObject(‘Admin/WP-0010 Container with Failures count and Its Listings/Page\_Dashboard/label\_4’),  
FailureHandling.CONTINUE\_ON\_FAILURE))

if (Failure == 0) {  
KeywordUtil.markFailedAndStop(‘Test has unexpected value. Failure=’ + Failure)  
} else {  
Condition here  
}

Is there wrong with my condition or if there is another import file should I get? Thank you for any help.

---

<div class="post-metadata">

**Author:** ![hannah.martin](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/hannah.martin/32/16104_2.png) [@hannah.martin](https://forum.katalon.com/u/hannah.martin)\
**Post date:** [June 30, 2022, 2:47am UTC](https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430/2 "2022-06-30T02:47:58Z")

</div>

While the error outputs:  
Test Cases/Cool Innovations/Zeph Portal/C-Users/C2 User/C2-WP-0010 Container with Failures count and Its Listings FAILED.  
Reason:  
groovy.lang.MissingMethodException: No signature of method: Script1656466262114.string() is applicable for argument types: (java.lang.String) values: [0]  
Possible solutions: toString(), toString(), print(java.lang.Object), print(java.lang.Object), sprintf(java.lang.String, java.lang.Object), print(java.io.PrintWriter)  
at C2-WP-0010 Container with Failures count and Its Listings.run(C2-WP-0010 Container with Failures count and Its Listings:54)  
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:445)  
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:436)  
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:415)  
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:407)  
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:284)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:142)  
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:133)  
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)  
at TempTestCase1656556804452.run(TempTestCase1656556804452.groovy:25)

---

<div class="post-metadata">

**Author:** ![grylion54](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/grylion54/32/16265_2.png) [@grylion54](https://forum.katalon.com/u/grylion54)\
**Post date:** [June 30, 2022, 3:30pm UTC](https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430/3 "2022-06-30T15:30:10Z")

</div>

Zero as in 0, is an Integer. However, “0” or ‘0’ is zero as a String (note the **quotes** around the zero). You can also have, 0.toString().

So, your statement,  
`if (Failure == 0) {`  
is trying to compare a String to an Integer, which should always fail\*. Choose one of the options that I gave and try again.

Your error message, “groovy.lang.MissingMethodException:” usually means that you do not have the correct **data type** for your parameters or the correct **number of parameters** for your method.

If I read correctly, you are trying to get an error number from your browser’s, “label\_4”. Is that correct? Just remember that the “getText()” method returns a **String** , never an Integer, even if it looks like a number.

Edit: And, I noticed you have parenthesis around your expression:

```auto
string (Failure = WebUI.getText(findTestObject(‘Admin/WP-0010 Container with Failures count and Its Listings/Page_Dashboard/label_4’), FailureHandling.CONTINUE_ON_FAILURE))

```

Remove the parenthesis in the above statement, so it becomes:

```auto
String failure = WebUI.getText(findTestObject('Admin/WP-0010 Container with Failures count and Its Listings/Page_Dashboard/label_4'), FailureHandling.CONTINUE_ON_FAILURE)

```

This might be the cause of your “groovy.lang.MissingMethodException:”.

[Groovy - Variables (tutorialspoint.com)](https://www.tutorialspoint.com/groovy/groovy_variables.htm#:~:text=%20Groovy%20-%20Variables%20%201%20Variable%20Declarations.,println%20function.%20The%20following%20example%20shows...%20More%20)

---

<div class="post-metadata">

**Author:** ![Dave\_Evers](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/dave_evers/32/435_2.png) [@Dave\_Evers](https://forum.katalon.com/u/Dave_Evers)\
**Post date:** [June 30, 2022, 10:34pm UTC](https://forum.katalon.com/t/if-else-statement-not-working-groovlang-missingmethodexception-no-signature-of-method/66430/4 "2022-06-30T22:34:23Z")

</div>

This could work for you…

```auto
//You would first get the string value
//Then convert the string to an int
//Then use the if statement...

String Failure = '0'
//String Failure = WebUI.getText(findTestObject('Object'), FailureHandling.CONTINUE_ON_FAILURE)
int FailureValue = Failure.toInteger()
if (FailureValue == 0) {
	println('FailureValue == 0') 
} else {
	println('FailureValue != 0')
}

```
