Need help using VerifyOptionsPresent keyword to check that options in a dropdown exist

Hi everyone. I’m new to Katalon Studio (and automation testing) and have been studying it for 2 weeks. I’ve got the basics of it down but I need help here.

I’m using the CURA Healthcare website provided by katalon to do my testing and I’m trying to perform a test to check if the options in the dropdown box do exist. Here is my script in manual mode.


Here is my script in script mode

WebUI.openBrowser(‘’)

WebUI.navigateToUrl(‘https://katalon-demo-cura.herokuapp.com/’)

WebUI.click(findTestObject(‘Object Repository/a_Make Appointment’))

WebUI.setText(findTestObject(‘Object Repository/input_Username_username’), ‘John Doe’)

WebUI.setEncryptedText(findTestObject(‘Object Repository/input_Password_password’), ‘g3/DOGG74jC3Flrr3yH+3D/yKbOqqUNM’)

WebUI.click(findTestObject(‘Object Repository/button_Login’))

WebUI.verifyOptionsPresent(findTestObject(‘CURA Dropdown’), [‘Toyko CURA Healthcare Center’, ‘Hongkong CURA Healthcare Center’, ‘Seoul CURA Healthcare Center’])

When I run the test I get the following error:

Test Cases/New Test Case FAILED because (of) (Stack trace: com.kms.katalon.core.exception.StepFailedException: Options [Toyko CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center] do NOT present. (Root cause: Options [Toyko CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center] do NOT present. (Root cause: Your expected options are [Toyko CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center] but the actual are [Tokyo CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center].))

at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)

at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:65)

at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:27)

at com.kms.katalon.core.webui.keyword.builtin.VerifyOptionsPresentKeyword.verifyOptionsPresent(VerifyOptionsPresentKeyword.groovy:72)

at com.kms.katalon.core.webui.keyword.builtin.VerifyOptionsPresentKeyword.execute(VerifyOptionsPresentKeyword.groovy:38)

at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)

at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.verifyOptionsPresent(WebUiBuiltInKeywords.groovy:3630)

at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$verifyOptionsPresent$4.call(Unknown Source)

at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)

at Script1538680506665.run(Script1538680506665.groovy:28)

at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:183)

at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:108)

at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:294)

at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:285)

at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:264)

at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:256)

at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:200)

at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:99)

at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:90)

at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)

at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:149)

at TempTestCase1538767215452.run(TempTestCase1538767215452.groovy:22)

at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263)

at groovy.lang.GroovyShell.run(GroovyShell.java:518)

at groovy.lang.GroovyShell.run(GroovyShell.java:507)

at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)

at groovy.ui.GroovyMain.run(GroovyMain.java:384)

at groovy.ui.GroovyMain.process(GroovyMain.java:370)

at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)

at groovy.ui.GroovyMain.main(GroovyMain.java:109)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)

at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)

)

Test Cases/New Test Case.run:28

The part of the error message that says (Root cause: Your expected options are [Toyko CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center] but the actual are [Tokyo CURA Healthcare Center, Hongkong CURA Healthcare Center, Seoul CURA Healthcare Center].)) doesn’t make sense since my expected options do match the actual options.

Manual mode.PNG

pls help.jpg

Toyko != Tokyo
in Toyko CURA Healthcare Center

Hi Andrej.

I decided to use the verify option by value keyword instead and it worked for me.

Thanks for replying anyway,