How to detect elements in android game!

Hello,

I require help and guidance, I am trying to automate a android game and need a clue to tap on the elements in each screen of game, but here using the given below script i am only able to tap on the ‘Play’ button of main game screen and not able to tap on the required object inside the game in the next screen,Using the UI automator No elements detected,so Iam trying to use coordinates to tap on the element,if screen has only one element,its able to tap there but not in the screen which has many elements,can anyone guide me how do tap what ever element I want to tap on each screen,is there any other application like ui automator which can detect the elements of the andorid game.
Please see the screenshots also for the game screen

My script:

package com.appium.mobile.mobilegestures;

import io.appium.java_client.MobileDriver;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;

import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class BqTest {

@Test

public void tapOnPlayButton() throws Exception
{
	DesiredCapabilities capabilities = new DesiredCapabilities() ;
	capabilities.setCapability("automationName","Appium");
	capabilities.setCapability("platformnName","Android");
	capabilities.setCapability("platformVersion","6.0");
	capabilities.setCapability("deviceName","Nexus 6" );
	capabilities.setCapability("app","C:\\Users\\Jenny\\Downloads\\hashcube apk\\bq.apk");
	capabilities.setCapability("appPackage","com.hashcube.bq");
	//capabilities.setCapability("appActivity", "Launcher");
	AndroidDriver driver = new AndroidDriver (new URL ("http://127.0.0.1:4723/wd/hub"), capabilities) ;
	driver.manage().timeouts().implicitlyWait(500,TimeUnit.SECONDS);
	
	
	//Script for tapping on Play button
	
	
	WebElement w1 = (WebElement) driver.findElements(By.className("android.view.View")).get(0);
	driver.tap(721,w1, 1242);
	driver.tap(122,w1, 1273);
	
	
		
}

}

Error generating in appium logs:

Killed Node Server.
Appium server process ended
Launching Appium server with command: C:\Program Files (x86)\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --log-no-color
warn: Appium support for versions of node < 0.12 has been deprecated and will be removed in a future version. Please upgrade!
info: Welcome to Appium v1.4.13 (REV c75d8adcb66a75818a542fe1891a34260c21f76a)
info: Appium REST http interface listener started on 127.0.0.1:4723
info: [debug] Non-default server args: {“address”:“127.0.0.1”,“logNoColors”:true,“platformName”:“Android”,“platformVersion”:“23”,“automationName”:“Appium”}
info: Console LogLevel: debug
info: --> POST /wd/hub/session {“desiredCapabilities”:{“app”:“C:\Users\Jenny\Downloads\hashcube apk\bq.apk”,“appPackage”:“com.hashcube.bq”,“platformnName”:“Android”,“platformVersion”:“6.0”,“automationName”:“Appium”,“platformName”:“Android”,“deviceName”:“Nexus 6”}}
info: Client User-Agent string: Apache-HttpClient/4.4.1 (Java/1.8.0_51)
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : platformnName
info: [debug] No appActivity desired capability or server param. Parsing from apk.
info: [debug] Using local app from desired caps: C:\Users\Jenny\Downloads\hashcube apk\bq.apk
info: [debug] Creating new appium session 441fbb0f-3441-49f3-8ace-6f479f25f035
info: Starting android appium
info: [debug] Getting Java version
info: Java version is: 1.8.0_51
info: [debug] Checking whether adb is present
info: [debug] Using adb from D:\adt-bundle-windows\sdk\platform-tools\adb.exe
info: [debug] Parsing package and activity from app manifest
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from D:\adt-bundle-windows\sdk\build-tools\23.0.0\aapt.exe
info: [debug] Extracting package and launch activity from manifest.
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\build-tools\23.0.0\aapt.exe dump badging “C:\Users\Jenny\Downloads\hashcube apk\bq.apk”
info: [debug] badging package: com.hashcube.bq
info: [debug] badging act: com.hashcube.bq.bqActivity
info: [debug] Parsed package and activity are: com.hashcube.bq/com.hashcube.bq.bqActivity
info: [debug] Using fast reset? true
info: [debug] Preparing device for session
info: [debug] Checking whether app is actually present
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe devices
info: [debug] 1 device(s) connected
info: Found device ZX1G4292PS
info: [debug] Setting device id to ZX1G4292PS
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS wait-for-device
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Getting device API level
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 23
info: Device API level is: 23
info: [debug] Extracting strings for language: default
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “getprop persist.sys.language”
info: [debug] Current device persist.sys.language:
info: [debug] java -jar “C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar” “stringsFromApk” “C:\Users\Jenny\Downloads\hashcube apk\bq.apk” “C:\Users\Jenny\AppData\Local\Temp\com.hashcube.bq”
info: [debug] Reading strings from converted strings.json
info: [debug] Setting language to default
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS push “C:\Users\Jenny\AppData\Local\Temp\com.hashcube.bq\strings.json” /data/local/tmp
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from D:\adt-bundle-windows\sdk\build-tools\23.0.0\aapt.exe
info: [debug] Retrieving process from manifest.
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\build-tools\23.0.0\aapt.exe dump xmltree “C:\Users\Jenny\Downloads\hashcube apk\bq.apk” AndroidManifest.xml
info: [debug] Set app process to: com.hashcube.bq
info: [debug] Not uninstalling app since server not started with --full-reset
info: [debug] Checking app cert for C:\Users\Jenny\Downloads\hashcube apk\bq.apk.
info: [debug] executing cmd: java -jar “C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar” “C:\Users\Jenny\Downloads\hashcube apk\bq.apk”
info: [debug] App already signed.
info: [debug] Zip-aligning C:\Users\Jenny\Downloads\hashcube apk\bq.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from D:\adt-bundle-windows\sdk\build-tools\23.0.0\zipalign.exe
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\build-tools\23.0.0\zipalign.exe -f 4 “C:\Users\Jenny\Downloads\hashcube apk\bq.apk” C:\Users\Jenny\AppData\Local\Temp\115103-4892-1ibyo9p\appium.tmp
info: [debug] MD5 for app is bc5aa7c9befa446684d0604e9367608f
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “ls /data/local/tmp/bc5aa7c9befa446684d0604e9367608f.apk”
info: [debug] Getting install status for com.hashcube.bq
info: [debug] Getting device API level
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 23
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “pm list packages -3 com.hashcube.bq”
info: [debug] App is installed
info: App is already installed, resetting app
info: [debug] Running fast reset (stop and clear)
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “am force-stop com.hashcube.bq”
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “pm clear com.hashcube.bq”
info: [debug] Forwarding system:4724 to device:4724
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS forward tcp:4724 tcp:4724
info: [debug] Pushing appium bootstrap to device…
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS push “C:\Program Files (x86)\Appium\node_modules\appium\build\android_bootstrap\AppiumBootstrap.jar” /data/local/tmp/
info: [debug] Pushing settings apk to device…
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk”
info: [debug] Pushing unlock helper app to device…
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS install “C:\Program Files (x86)\Appium\node_modules\appium\build\unlock_apk\unlock_apk-debug.apk”
info: Starting App
info: [debug] Attempting to kill all ‘uiautomator’ processes
info: [debug] Getting all processes with ‘uiautomator’
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “ps ‘uiautomator’”
info: [debug] No matching processes found
info: [debug] Running bootstrap
info: [debug] spawning: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg com.hashcube.bq -e disableAndroidWatchers false
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: numtests=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: stream=
info: [debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS: current=1
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE: 1
info: [debug] [BOOTSTRAP] [debug] Socket opened on port 4724
info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
info: [debug] [BOOTSTRAP] [debug] Loading json…
info: [debug] Waking up device if it’s not alive
info: [debug] Pushing command to appium work queue: [“wake”,{}]
info: [debug] [BOOTSTRAP] [debug] json loading complete.
info: [debug] [BOOTSTRAP] [debug] Registered crash watchers.
info: [debug] [BOOTSTRAP] [debug] Client connected
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“wake”,“params”:{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: wake
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “dumpsys window”
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:true}
info: [debug] Screen already unlocked, continuing.
info: [debug] Pushing command to appium work queue: [“getDataDir”,{}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“getDataDir”,“params”:{}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getDataDir
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:"/data/local/tmp"}
info: [debug] dataDir set to: /data/local/tmp
info: [debug] Pushing command to appium work queue: [“compressedLayoutHierarchy”,{“compressLayout”:false}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“compressedLayoutHierarchy”,“params”:{“compressLayout”:false}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: compressedLayoutHierarchy
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:false}
info: [debug] Getting device API level
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 23
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.hashcube.bq/com.hashcube.bq.bqActivity”
info: [debug] Waiting for pkg “com.hashcube.bq” and activity “com.hashcube.bq.bqActivity” to be focused
info: [debug] Getting focused package and activity
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “dumpsys window windows”
info: [debug] executing cmd: D:\adt-bundle-windows\sdk\platform-tools\adb.exe -s ZX1G4292PS shell “getprop ro.build.version.release”
info: [debug] Device is at release version 6.0
info: [debug] Device launched! Ready for commands
info: [debug] Setting command timeout to the default of 60 secs
info: [debug] Appium session started with sessionId 441fbb0f-3441-49f3-8ace-6f479f25f035
info: <-- POST /wd/hub/session 303 14273.250 ms - 74
info: --> GET /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035 {}
info: [debug] Responding to client with success: {“status”:0,“value”:{“platform”:“LINUX”,“browserName”:“Android”,“platformVersion”:“6.0”,“webStorageEnabled”:false,“takesScreenshot”:true,“javascriptEnabled”:true,“databaseEnabled”:false,“networkConnectionEnabled”:true,“locationContextEnabled”:false,“warnings”:{},“desired”:{“app”:“C:\Users\Jenny\Downloads\hashcube apk\bq.apk”,“appPackage”:“com.hashcube.bq”,“platformnName”:“Android”,“platformVersion”:“6.0”,“automationName”:“Appium”,“platformName”:“Android”,“deviceName”:“Nexus 6”},“app”:“C:\Users\Jenny\Downloads\hashcube apk\bq.apk”,“appPackage”:“com.hashcube.bq”,“platformnName”:“Android”,“automationName”:“Appium”,“platformName”:“Android”,“deviceName”:“ZX1G4292PS”},“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: <-- GET /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035 200 66.610 ms - 732 {“status”:0,“value”:{“platform”:“LINUX”,“browserName”:“Android”,“platformVersion”:“6.0”,“webStorageEnabled”:false,“takesScreenshot”:true,“javascriptEnabled”:true,“databaseEnabled”:false,“networkConnectionEnabled”:true,“locationContextEnabled”:false,“warnings”:{},“desired”:{“app”:“C:\Users\Jenny\Downloads\hashcube apk\bq.apk”,“appPackage”:“com.hashcube.bq”,“platformnName”:“Android”,“platformVersion”:“6.0”,“automationName”:“Appium”,“platformName”:“Android”,“deviceName”:“Nexus 6”},“app”:“C:\Users\Jenny\Downloads\hashcube apk\bq.apk”,“appPackage”:“com.hashcube.bq”,“platformnName”:“Android”,“automationName”:“Appium”,“platformName”:“Android”,“deviceName”:“ZX1G4292PS”},“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: --> POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/timeouts/implicit_wait {“ms”:500000}
info: [debug] Set Android implicit wait to 500000ms
info: [debug] Responding to client with success: {“status”:0,“value”:null,“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: <-- POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/timeouts/implicit_wait 200 2.366 ms - 76 {“status”:0,“value”:null,“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: --> POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/elements {“using”:“class name”,“value”:“android.view.View”}
info: [debug] Waiting up to 500000ms for condition
info: [debug] Pushing command to appium work queue: [“find”,{“strategy”:“class name”,“selector”:“android.view.View”,“context”:"",“multiple”:true}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“find”,“params”:{“strategy”:“class name”,“selector”:“android.view.View”,“context”:"",“multiple”:true}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: find
info: [debug] [BOOTSTRAP] [debug] Finding android.view.View using CLASS_NAME with the contextId: multiple: true
info: [debug] [BOOTSTRAP] [debug] Using: UiSelector[CLASS=android.view.View]
info: [debug] [BOOTSTRAP] [debug] getElements selector:UiSelector[CLASS=android.view.View]
info: [debug] [BOOTSTRAP] [debug] Element[] is null: (0)
info: [debug] [BOOTSTRAP] [debug] getElements tmp selector:UiSelector[CLASS=android.view.View, INSTANCE=0]
info: [debug] [BOOTSTRAP] [debug] Element[] is null: (1)
info: [debug] [BOOTSTRAP] [debug] getElements tmp selector:UiSelector[CLASS=android.view.View, INSTANCE=1]
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:[{“ELEMENT”:“1”}]}
info: [debug] Responding to client with success: {“status”:0,“value”:[{“ELEMENT”:“1”}],“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: <-- POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/elements 200 1302.554 ms - 89 {“status”:0,“value”:[{“ELEMENT”:“1”}],“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: --> POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/touch/multi/perform {“actions”:[[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,“options”:{“element”:“1”}},{“action”:“wait”,“options”:{“ms”:1242}},{“action”:“release”,“options”:{}}],[{“action”:“press”,"
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“element:getLocation”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getLocation”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getLocation
info: [debug] Pushing command to appium work queue: [“element:getSize”,{“elementId”:“1”}]
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“x”:0,“y”:0}}
info: [debug] [BOOTSTRAP] [debug] Got data from client: {“cmd”:“action”,“action”:“element:getSize”,“params”:{“elementId”:“1”}}
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: getSize
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:0,“value”:{“width”:1440,“height”:2560}}
info: [debug] Pushing command to appium work queue: [“performMultiPointerGesture”,{“actions”:[[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:
info: [debug] [UIAUTOMATOR STDOUT] 1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“pre
info: [debug] [UIAUTOMATOR STDOUT] ss”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:
info: [debug] [UIAUTOMATOR STDOUT] “wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“to
info: [debug] [UIAUTOMATOR STDOUT] uch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,"
info: [debug] [UIAUTOMATOR STDOUT] touch":{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,"
info: [debug] [UIAUTOMATOR STDOUT] x":720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,"x
info: [debug] [UIAUTOMATOR STDOUT] ":720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“ac
info: [debug] [UIAUTOMATOR STDOUT] tion”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},
[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“t
info: [debug] [UIAUTOMATOR STDOUT] ouch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}],[{“action”:“press”,“time”:0.005,“touch”:{“element”:“1”,“x”:720,“y”:1280}},{“action”:“wait”,“time”:1.247,“touch”:{“ms”:1242,“x”:720,“y”:1280}}]]}}[/APPIUM-UIAUTO]
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: performMultiPointerGesture
info: [debug] [BOOTSTRAP] [debug] Returning result: {“status”:13,“value”:“Unable to perform multi pointer gesture”}
info: [debug] Responding to client with error: {“status”:13,“value”:{“message”:“An unknown server-side error occurred while processing the command.”,“origValue”:“Unable to perform multi pointer gesture”},“sessionId”:“441fbb0f-3441-49f3-8ace-6f479f25f035”}
info: <-- POST /wd/hub/session/441fbb0f-3441-49f3-8ace-6f479f25f035/touch/multi/perform 500 21858.594 ms - 208
Killed Node Server.
Appium server process ended

Please guide. width=“281” height=“500”>

It looks UIAutomator is not able to detect individual elements of screen. So appium may not be a right tool.
Going by screen coordinates will not be good as it is a hard coded.

Ohk, can you or any one suggest then what other tool can be used to automate game?

Add an image comparison function.

Thats a very breif answer, can you explain in detail,i am a beginner in automation so need a little guidance

UIAutomator can only detect native android elements. Most of the games use third party libraries and are not using native android controls. Like Unity is being used for game development.

Going by coordinates is not a good idea. Try to use image recognition and comparison libraries or tools in conjunction with Appium.

Sikuli is one that tool (opensource). There are commercial tools available too like eggplant etc.

testdroid.com/tech/mobile-game-testing-part-2-ui-and-functionality-image-recognition

1 Like

Hello Umar,

Thanks for replying, I have been banging my head with using sikuli in conjuction with appium on eclipse,searched many sites to find a proper step by step instructions,but i coudnt find any help, If some body can explain clearly what image comparison libraries ,you mean open CV? …I am just wondering is there no one on this earth who tried automating a mobile game and can provide tips here it wil be such a great help… thanks

It’s using Akaze and OpenCV:
Save screen shot of the elements need to be interacted to library then while testing search if it appears on screen.

With the help of Akaze and OpenCV, we can quickly build functions that compare the screen and graphics content in .png files. The idea is to give visual assets (.png files) as they are and test script will compare and perform action whenever those visual assets are shown on screen. For example, with some of the test frameworks the timing and delays have been problematic. With this sort of implementation you don’t need to implement delays or any timing logic for scripts but instead script can wait until certain visual assets are shown on screen.

public Point[] findImageOnScreenAndSetRotation(String image) throws Exception {
    int retries = 5;
    Point[] imgRect = null;
    while ((retries > 0) && (imgRect == null)) {
        if (retries < 5) {
            log("Find image failed, retries left: " + retries);
        }
        takeScreenshot(image + "_screenshot");
        //this will identify the rotation initially
        imgRect = findImage(image, image + "_screenshot", "notSet"); 
        retries = retries - 1;
    }
    assertNotNull("Image " + image + " not found on screen.", imgRect);
    return imgRect;
}

you can check clearly here (first part of guide that @Umar_Khan gave ) http://testdroid.com/news/how-to-use-image-recognition-for-mobile-app-and-game-testing

Hi [907howard],
Use Airtest (IDE) or Alt Unity (Lib.) for testing the game automation
Limitations :
U need to have the build code of the game.
only supported in Python