Operating System: 13.5.2 (22G91)
Katalon Studio version: 8.5.4 beta2
Environment (for Mobile testing)
- Appium version: 2.1.3
- Mobile platform/version under test: iOS 16.6
- Real device or emulator/simulator: iPhone 8 plus
- Xcode version (for iOS): Version 14.3.1 (14E300c)
Steps to reproduce
Calling the Mobile.takeScreenshotAsCheckpoint function fails
**Log Error **
2023-09-29 15:42:18.493 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2023-09-29 15:42:18.495 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/Pruebas/prueba-VT-katalon
2023-09-29 15:42:18.660 WARN c.k.katalon.core.logging.KeywordLogger - Please use “KeywordUtil.logInfo()” instead of “new KeywordLogger()” constructor. “KeywordLogger” is an internal API and might be changed in the future.
2023-09-29 15:42:18.677 INFO k.k.c.m.CustomKeywordDelegatingMetaClass - com.kms.katalon.keyword.testsuite.RerunKeyword.isStringBelongToList is PASSED
2023-09-29 15:42:18.787 DEBUG testcase.prueba-VT-katalon - 1: iosDriver =
2023-09-29 15:42:18.788 DEBUG testcase.prueba-VT-katalon - 2: capabilities = new org.openqa.selenium.remote.DesiredCapabilities()
2023-09-29 15:42:18.800 DEBUG testcase.prueba-VT-katalon - 3: capabilities.setCapability(“appium:autoGrantPermissions”, true)
2023-09-29 15:42:18.802 DEBUG testcase.prueba-VT-katalon - 4: capabilities.setCapability(“appium:newCommandTimeout”, 1800)
2023-09-29 15:42:18.805 DEBUG testcase.prueba-VT-katalon - 5: capabilities.setCapability(“appium:automationName”, “XCUITest”)
2023-09-29 15:42:18.807 DEBUG testcase.prueba-VT-katalon - 6: capabilities.setCapability(“platformName”, “iOS”)
2023-09-29 15:42:18.808 DEBUG testcase.prueba-VT-katalon - 7: capabilities.setCapability(“appium:platformVersion”, “16.6”)
2023-09-29 15:42:18.809 DEBUG testcase.prueba-VT-katalon - 8: capabilities.setCapability(“waitForAppScript”, “true”)
2023-09-29 15:42:18.809 DEBUG testcase.prueba-VT-katalon - 9: capabilities.setCapability(“appium:bundleId”, “com.innocv.BMI”)
2023-09-29 15:42:18.810 DEBUG testcase.prueba-VT-katalon - 10: capabilities.setCapability(“appium:realDeviceLogger”, “/Applications/Katalon Studio 8.5.4 appium2.app/Contents/Eclipse/configuration/resources/tools/deviceconsole”)
2023-09-29 15:42:18.811 DEBUG testcase.prueba-VT-katalon - 11: capabilities.setCapability(“appium:deviceId”, “”)
2023-09-29 15:42:18.811 DEBUG testcase.prueba-VT-katalon - 12: capabilities.setCapability(“appium:udid”, “2a23aaac2db92466f13a6fb869d5ecfa20f2cb01”)
2023-09-29 15:42:18.812 DEBUG testcase.prueba-VT-katalon - 13: iosDriver = new io.appium.java_client.ios.IOSDriver(new java.net.URL(http://127.0.0.1:4723), capabilities)
sep 29, 2023 3:42:26 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0
INFORMACIÓN: Detected dialect: W3C
2023-09-29 15:42:26.826 DEBUG testcase.prueba-VT-katalon - 14: iosDriver.activateApp(iosId)
2023-09-29 15:42:27.837 DEBUG testcase.prueba-VT-katalon - 15: setDriver(iosDriver)
2023-09-29 15:42:27.859 DEBUG testcase.prueba-VT-katalon - 16: takeScreenshotAsCheckpoint(“008”)
2023-09-29 15:42:28.527 ERROR c.k.k.core.keyword.internal.KeywordMain -
Unable to take screenshot (Root cause: java.lang.NullPointerException
at com.kms.katalon.core.mobile.helper.MobileCommonHelper.getStatusBarHeight(MobileCommonHelper.java:218)
at com.kms.katalon.core.mobile.helper.MobileScreenCaptor.takeViewportScreenshot(MobileScreenCaptor.java:131)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.doCall(TakeScreenshotKeyword.groovy:104)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.call(TakeScreenshotKeyword.groovy)
at com.kms.katalon.core.mobile.keyword.internal.MobileKeywordMain.runKeyword(MobileKeywordMain.groovy:21)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.takeScreenshot(TakeScreenshotKeyword.groovy:93)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.execute(TakeScreenshotKeyword.groovy:53)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords.takeScreenshotAsCheckpoint(MobileBuiltInKeywords.groovy:379)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords$takeScreenshotAsCheckpoint.call(Unknown Source)
at prueba-VT-katalon.run(prueba-VT-katalon:28)
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:448)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285)
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 TempTestCase1695994926323.run(TempTestCase1695994926323.groovy:25)
)
2023-09-29 15:42:28.530 ERROR c.k.katalon.core.main.TestCaseExecutor -
Test Cases/Pruebas/prueba-VT-katalon FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to take screenshot (Root cause: java.lang.NullPointerException
at com.kms.katalon.core.mobile.helper.MobileCommonHelper.getStatusBarHeight(MobileCommonHelper.java:218)
at com.kms.katalon.core.mobile.helper.MobileScreenCaptor.takeViewportScreenshot(MobileScreenCaptor.java:131)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.doCall(TakeScreenshotKeyword.groovy:104)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.call(TakeScreenshotKeyword.groovy)
at com.kms.katalon.core.mobile.keyword.internal.MobileKeywordMain.runKeyword(MobileKeywordMain.groovy:21)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.takeScreenshot(TakeScreenshotKeyword.groovy:93)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.execute(TakeScreenshotKeyword.groovy:53)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords.takeScreenshotAsCheckpoint(MobileBuiltInKeywords.groovy:379)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords$takeScreenshotAsCheckpoint.call(Unknown Source)
at prueba-VT-katalon.run(prueba-VT-katalon:28)
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:448)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285)
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 TempTestCase1695994926323.run(TempTestCase1695994926323.groovy:25)
)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:50)
at com.kms.katalon.core.mobile.keyword.internal.MobileKeywordMain.stepFailed(MobileKeywordMain.groovy:40)
at com.kms.katalon.core.mobile.keyword.internal.MobileKeywordMain.runKeyword(MobileKeywordMain.groovy:23)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.takeScreenshot(TakeScreenshotKeyword.groovy:93)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword.execute(TakeScreenshotKeyword.groovy:53)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords.takeScreenshotAsCheckpoint(MobileBuiltInKeywords.groovy:379)
at com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords$takeScreenshotAsCheckpoint.call(Unknown Source)
at prueba-VT-katalon.run(prueba-VT-katalon:28)
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:448)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285)
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 TempTestCase1695994926323.run(TempTestCase1695994926323.groovy:25)
Caused by: java.lang.NullPointerException
at com.kms.katalon.core.mobile.helper.MobileCommonHelper.getStatusBarHeight(MobileCommonHelper.java:218)
at com.kms.katalon.core.mobile.helper.MobileScreenCaptor.takeViewportScreenshot(MobileScreenCaptor.java:131)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.doCall(TakeScreenshotKeyword.groovy:104)
at com.kms.katalon.core.mobile.keyword.builtin.TakeScreenshotKeyword$_takeScreenshot_closure1.call(TakeScreenshotKeyword.groovy)
at com.kms.katalon.core.mobile.keyword.internal.MobileKeywordMain.runKeyword(MobileKeywordMain.groovy:21)
… 17 more
2023-09-29 15:42:28.534 INFO k.k.c.m.CustomKeywordDelegatingMetaClass - com.kms.katalon.keyword.testsuite.RerunKeyword.isStringBelongToList is PASSED
2023-09-29 15:42:28.535 INFO k.k.c.m.CustomKeywordDelegatingMetaClass - com.kms.katalon.keyword.testsuite.RerunKeyword.isStringBelongToList is PASSED
2023-09-29 15:42:28.539 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/Pruebas/prueba-VT-katalon
Test case:
import org.openqa.selenium.remote.DesiredCapabilities
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.mobile.keyword.internal.MobileDriverFactory
import internal.GlobalVariable
import io.appium.java_client.ios.IOSDriver
IOSDriver iosDriver
DesiredCapabilities capabilities = new DesiredCapabilities()
capabilities.setCapability(“appium:autoGrantPermissions”, true)
capabilities.setCapability(“appium:newCommandTimeout”, 1800)
capabilities.setCapability(“appium:automationName”, “XCUITest”)
capabilities.setCapability(“platformName”, “iOS”)
capabilities.setCapability(“appium:platformVersion”, “16.6”)
capabilities.setCapability(“waitForAppScript”, “true”)
capabilities.setCapability(“appium:bundleId”, “com.innocv.BMI”)
capabilities.setCapability(“appium:realDeviceLogger”, “/Applications/Katalon Studio 8.5.4 appium2.app/Contents/Eclipse/configuration/resources/tools/deviceconsole”)
capabilities.setCapability(“appium:deviceId”, “”)
capabilities.setCapability(“appium:udid”, “2a23aaac2db92466f13a6fb869d5ecfa20f2cb01”)
iosDriver = new IOSDriver(new URL(“http://127.0.0.1:4723”), capabilities)
iosDriver.activateApp(GlobalVariable.iosId)
MobileDriverFactory.setDriver( iosDriver)
Mobile.takeScreenshotAsCheckpoint(‘008’)