# Error when using visual testing with iPhone

**URL:** <https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074>\
**Category:** Bug Report\
**Created:** [September 30, 2023, 3:17pm UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074 "2023-09-30T15:17:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![asuncion.galan](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/asuncion.galan/32/20464_2.png) [@asuncion.galan](https://forum.katalon.com/u/asuncion.galan)\
**Post date:** [September 30, 2023, 3:17pm UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074/1 "2023-09-30T15:17:57Z")

</div>

### 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](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](http://127.0.0.1:4723)”), capabilities)  
iosDriver.activateApp(GlobalVariable.iosId)  
MobileDriverFactory.setDriver( iosDriver)

Mobile.takeScreenshotAsCheckpoint(‘008’)

* * *

---

<div class="post-metadata">

**Author:** ![albert.vu](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/albert.vu/32/20595_2.png) [@albert.vu](https://forum.katalon.com/u/albert.vu)\
**Post date:** [September 30, 2023, 3:20pm UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074/2 "2023-09-30T15:20:23Z")

</div>

Assigned @Elly\_Tran on September 30, 2023, 3:20pm UTC

Hi em, could you take a look at this topic? Thanks

---

<div class="post-metadata">

**Author:** ![Elly\_Tran](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/elly_tran/32/21874_2.png) [@Elly\_Tran](https://forum.katalon.com/u/Elly_Tran)\
**Post date:** [October 2, 2023, 3:44am UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074/3 "2023-10-02T03:44:38Z")

</div>

Hi,

I would like to clarify more on the issue that the keyword `Mobile.takeScreenshotAsCheckpoint` cannot capture full screenshot, is this correct? If yes, the bug has been addressed and we plan to fix it in v9.1.0.

---

<div class="post-metadata">

**Author:** ![asuncion.galan](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/asuncion.galan/32/20464_2.png) [@asuncion.galan](https://forum.katalon.com/u/asuncion.galan)\
**Post date:** [October 2, 2023, 7:14am UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074/4 "2023-10-02T07:14:14Z")

</div>

That is, I can’t capture any screenshot, neither full nor partial.

---

<div class="post-metadata">

**Author:** ![Elly\_Tran](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/elly_tran/32/21874_2.png) [@Elly\_Tran](https://forum.katalon.com/u/Elly_Tran)\
**Post date:** [October 2, 2023, 9:40am UTC](https://forum.katalon.com/t/error-when-using-visual-testing-with-iphone/98074/5 "2023-10-02T09:40:06Z")

</div>

Yeah, hope that v9.1.0 can fix this problem. Thank you!
