Issue with verifyElementAttributeValue()?

I’m not sure if this is a bug similar to the v7.0 fix to verifyElementPresent() where it would throw an exception rather than returning false - can someone check on this? I appreciate the feedback.

I’m running Win 10, Katalon v7.0.2.

I have an object /input_ChargeUnit, and its class is 'form-control-required'. I noticed that getAttribute() seems to be returning true or false correctly, though I’m having issues with verifyElementAttributeValue().

Here’s my check - the first line of getAttribute() and verifyElementAttributeValue() both should return true, and the respective second line of each should return false. The 4th line throws an exception, but does return false at the end, though that doesn’t look like it’s working correctly. The Console output is below the code.

System.out.println(WebUI.getAttribute(findTestObject('Page_eForms/input_ChargeUnit'), 'class').equals('form-control-required'))
System.out.println(WebUI.getAttribute(findTestObject('Page_eForms/input_ChargeUnit'), 'class').equals('form-control'))

System.out.println(WebUI.verifyElementAttributeValue(findTestObject('Page_eForms/input_ChargeUnit'), 'class', 'form-control-required',5))
System.out.println(WebUI.verifyElementAttributeValue(findTestObject('Page_eForms/input_ChargeUnit'), 'class', 'form-control',5))`

Here’s the Console log of the above:

2019-10-24 12:19:24.430 DEBUG t.00120 - Travel Details Validations     - 29: out.println(getAttribute(findTestObject("Page_eForms/input_ChargeUnit"), "class").equals("form-control-required"))
true
2019-10-24 12:19:24.483 DEBUG t.00120 - Travel Details Validations     - 30: out.println(getAttribute(findTestObject("Page_eForms/input_ChargeUnit"), "class").equals("form-control"))
false
2019-10-24 12:19:24.534 DEBUG t.00120 - Travel Details Validations     - 31: out.println(verifyElementAttributeValue(findTestObject("Page_eForms/input_ChargeUnit"), "class", "form-control-required", 5))
true
2019-10-24 12:19:24.590 DEBUG t.00120 - Travel Details Validations     - 32: out.println(verifyElementAttributeValue(findTestObject("Page_eForms/input_ChargeUnit"), "class", "form-control", 5))
2019-10-24 12:19:24.646 ERROR c.k.k.core.keyword.internal.KeywordMain  - ❌ Object 'Object Repository/Page_eForms/input_ChargeUnit' has attribute 'class' with actual value 'form-control-required' instead of expected value 'form-control' (Root cause: com.kms.katalon.core.exception.StepFailedException: Object 'Object Repository/Page_eForms/input_ChargeUnit' has attribute 'class' with actual value 'form-control-required' instead of expected value 'form-control'
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyElementAttributeValueKeyword$_verifyElementAttributeValue_closure1.doCall(VerifyElementAttributeValueKeyword.groovy:94)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyElementAttributeValueKeyword$_verifyElementAttributeValue_closure1.call(VerifyElementAttributeValueKeyword.groovy)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyElementAttributeValueKeyword.verifyElementAttributeValue(VerifyElementAttributeValueKeyword.groovy:109)
	at com.kms.katalon.core.webui.keyword.builtin.VerifyElementAttributeValueKeyword.execute(VerifyElementAttributeValueKeyword.groovy:70)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:60)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.verifyElementAttributeValue(WebUiBuiltInKeywords.groovy:3252)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$verifyElementAttributeValue$15.call(Unknown Source)
	at 00120 - Travel Details Validations.run(00120 - Travel Details Validations:138)
	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.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:169)
	at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:142)
	at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:91)
	at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157)
	at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
	at TempTestSuite1571944729212.run(TempTestSuite1571944729212.groovy:36)
)
false

You need failure Handling (either CONTINUE_ON_FAILURE or OPTIONAL depending how you want the TC to behave at that point)