I have tried using Appium API method getAppStringMap() to get app version details per the Appium documentation but it is throwing below Exception when executed on real device in Perfecto cloud. Can you please help me how to get version details of application under test. Appreciate your inputs.
Platform: iOS and Android
java Client langauage: 6.1.0
pm-webdriver: 10.4
selenium: 2.48
Exception Trace:
Aug 01, 2019 3:21:53 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0
INFO: Detected dialect: OSS
Exception in thread “main” org.openqa.selenium.WebDriverException: getAppStrings command is not supported
Command duration or timeout: 0 milliseconds
Build info: version: ‘3.13.0’, revision: ‘2f0d292’, time: ‘2018-06-25T15:24:21.231Z’
System info: host: ‘’, ip: ‘’, os.name: ‘Windows 10’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘1.8.0_212’
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities {appPackage: com.MyApp, assert_javascript_enabled: true, deviceName: R3JYHY, deviceSessionId: sample123@abc…, entityType: appium_driver, executionId: sample123@abc…, host: abc.perfectomobile.com, javascriptEnabled: true, password: , platform: ANDROID, platformName: Android, reportPdfUrl: https://abc.app.perfectomobi…, scriptName: RemoteWebDriver, securityToken: , serverConnector: , testGridReportUrl: https://abc.app.perfectomobi…, user: , webdriver.remote.sessionid: 989c0f81-b03f-4289-841c-5d7…}
Session ID: 989c0f81-b03f-4289-841c-5d7c00fc6a7c
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:231)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:46)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at io.appium.java_client.CommandExecutionHelper.execute(CommandExecutionHelper.java:31)
at io.appium.java_client.HasAppStrings.getAppStringMap(HasAppStrings.java:32)
at AppiumTest.main(AppiumTest.java:118)
Caused by: java.lang.UnsupportedOperationException: getAppStrings command is not supported
at com.perfectomobile.selenium.server.appium.GetAppStrings.mobileCall(GetAppStrings.java:26)
at com.perfectomobile.selenium.server.appium.GetAppStrings.mobileCall(GetAppStrings.java:14)
at com.perfectomobile.selenium.server.MobileWebDriverHandler.call(MobileWebDriverHandler.java:23)
at org.openqa.selenium.remote.server.handler.WebDriverHandler.handle(WebDriverHandler.java:41)
at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:125)
at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:200)
at org.openqa.selenium.remote.server.PerfectoMobileSession.execute(PerfectoMobileSession.java:65)
at org.openqa.selenium.remote.server.MobileWebDriverServlet.lambda$handle$2(MobileWebDriverServlet.java:298)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)