Hello,
I have a web page with 3 checkboxes. The checkboxes look identical. The only difference are labels. So, when i try to verify a specific checkbox status, Katalon can’t recognize the checkbox. I don’t want to go with creating array of checkbox, since I want to keep script more general in case of more checkboxes are added in the future.
I tried to create an iFrame object and use it as a parent for a checkbox. However, Katalon does not recognize an object inside iFrame. I am wondering what did I do wrong.
This is how I identified the iFrame:
and the object:
//*[contains(@class, ‘checkbox__box’) and @ref_element = ‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_iFrame’]
Both objects are uniquely identified with WebSpy and xpath extension.
This is the script:
// Frame
def res = false
if (GlobalVariable.DebugMode)
System.out.println(‘****** res ’ + res)
res=WebUI.verifyElementPresent(findTestObject(‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_iFrame’), 10)
if (GlobalVariable.DebugMode)
System.out.println('* iFrame presented ’ + res)
res=false
res = WebUI.switchToFrame(findTestObject(‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_iFrame’), 10, FailureHandling.STOP_ON_FAILURE)
if (GlobalVariable.DebugMode)
System.out.println('* inside inStock iFrame ’ + res)
res = false
if (GlobalVariable.DebugMode)
System.out.println('* res ’ + res)
res WebUI.verifyElementPresent(findTestObject(‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_Chckbx’), 10, FailureHandling.OPTIONAL)
if (GlobalVariable.DebugMode)
System.out.println('* InStock_Chckbx presented *****’ + res)
It looks like an iFrame object is presented, but I can’t switch to this iFrame. It returns the following error:
****** res *****false
****** iFrame presented *****true
****** res *****false
2021-06-16 10:44:41.507 ERROR c.k.k.core.keyword.internal.KeywordMain - Unable to verify image ‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_iFrame’ present (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to verify image ‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_iFrame’ present
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.SwitchToFrameKeyword.switchToFrame(SwitchToFrameKeyword.groovy:84)
at com.kms.katalon.core.webui.keyword.builtin.SwitchToFrameKeyword.execute(SwitchToFrameKeyword.groovy:68)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:73)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.switchToFrame(WebUiBuiltInKeywords.groovy:2879)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$switchToFrame$11.call(Unknown Source)
at dashboard.menu.builder.AddItemOrModifier.AddNewItemOrModifier(AddItemOrModifier.groovy:156)
at dashboard.menu.builder.AddItemOrModifier.invokeMethod(AddItemOrModifier.groovy)
at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:50)
at TC - AddNewItemWithKeyword.run(TC - AddNewItemWithKeyword:24)
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:398)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:389)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:368)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:360)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:255)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:203)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:152)
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:95)
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157)
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
at TempTestSuite1623858245486.run(TempTestSuite1623858245486.groovy:39)
Caused by: org.openqa.selenium.NoSuchFrameException: no such frame: element is not a frame
(Session info: chrome=91.0.4472.101)
If I will comment switchToFrameout, i still can’t see the ckeckbox object:
2021-06-16 10:53:01.032 WARN c.k.k.core.keyword.internal.KeywordMain - Unable to verify object ‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_Chckbx’ is present (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to verify object ‘Object Repository/Dashboard/MenuBuilder/ItemsAndModsPage/ItemsDetailsPage/InStock_Chckbx’ is present
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
at com.kms.katalon.core.webui.keyword.builtin.VerifyElementPresentKeyword.verifyElementPresent(VerifyElementPresentKeyword.groovy:92)
at com.kms.katalon.core.webui.keyword.builtin.VerifyElementPresentKeyword.execute(VerifyElementPresentKeyword.groovy:68)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:73)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.verifyElementPresent(WebUiBuiltInKeywords.groovy:1447)
at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$verifyElementPresent$8.call(Unknown Source)
at dashboard.menu.builder.AddItemOrModifier.AddNewItemOrModifier(AddItemOrModifier.groovy:162)
at dashboard.menu.builder.AddItemOrModifier.invokeMethod(AddItemOrModifier.groovy)
at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:50)
at TC - AddNewItemWithKeyword.run(TC - AddNewItemWithKeyword:24)
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:398)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:389)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:368)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:360)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:255)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:203)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:152)
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:95)
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:157)
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
at TempTestSuite1623858750407.run(TempTestSuite1623858750407.groovy:39)
Caused by: org.openqa.selenium.NoSuchFrameException: no such frame: element is not a frame
(Session info: chrome=91.0.4472.101)