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â)