Git Product home page Git Product logo

appium-classifier-plugin's People

Contributors

aeavella77 avatar cnavrides avatar dependabot[bot] avatar jlipps avatar kazucocoa avatar mka-ca avatar nozomiito avatar srinivasantarget avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

appium-classifier-plugin's Issues

ERROR: [email protected] install error->node-gyp rebuild,No such file or directory

  • Version info:

[email protected]
[email protected]
[email protected]
CentOS Linux release 7.4.1708

  • Install directory:
    cd /root/download/node-v10.15.0-linux-x64/lib/node_modules/appium

  • Error info:

node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/root/download/node-v10.15.0-linux-x64/lib/node_modules/_appium@1.16.0@appium/node_modules/grpc/src/node/extension_binary/node-v64-linux-x64-glibc/grpc_node.node" is installed via remote

[email protected] install /root/download/node-v10.15.0-linux-x64/lib/node_modules/_appium@1.16.0@appium/node_modules/test-ai-classifier
node-gyp rebuild

make: Entering directory `/root/download/node-v10.15.0-linux-x64/lib/node_modules/_appium@1.16.0@appium/node_modules/test-ai-classifier/build'
CXX(target) Release/obj.target/test-ai-classifier/cc/main.o

In file included from ../cc/main.cc:3:0:
../cc/detection.h:6:83: fatal error: ../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h: No such file or directory
#include "../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h"
^
compilation terminated.

  • Question: is this caused by the wrong path in this file""test-ai-classifier/cc/main.cc""?

    -[error file]:/root/download/node-v10.15.0-linux-x64/lib/node_modules/_appium@1.16.0@appium/node_modules/test-ai-classifier/cc/main.cc
    -[ error line]:#include "../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h"
    -[tensorflow directory]:
    /root/download/node-v10.15.0-linux-x64/lib/node_modules/_appium@1.16.0@appium/node_modules/@tensorflow/tfjs-node/deps/include/tensorflow

Error while installing the plugin : Error: [email protected] postinstall: `node ./postinstall.js`

Could you please help me in the same . I am pasting snippet of logs along with the attached debug log if needed for reference.

Terminal logs:

[email protected] postinstall /usr/local/lib/node_modules/test-ai-classifier/node_modules/protobufjs
node scripts/postinstall

[email protected] postinstall /usr/local/lib/node_modules/test-ai-classifier
node ./postinstall.js

/usr/local/lib/node_modules/test-ai-classifier/node_modules/bluebird/js/release/promisify.js:270
throw new TypeError("expecting a function but got " + util.classString(fn));
^
TypeError: expecting a function but got [object Undefined]
at Function.promisify (/usr/local/lib/node_modules/test-ai-classifier/node_modules/bluebird/js/release/promisify.js:270:15)
at Object. (/usr/local/lib/node_modules/test-ai-classifier/node_modules/appium-support/lib/zip.js:17:20)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
at Object. (/usr/local/lib/node_modules/test-ai-classifier/node_modules/appium-support/index.js:10:1)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
at Object. (/usr/local/lib/node_modules/test-ai-classifier/lib/download.js:3:1)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
npm WARN [email protected] requires a peer of bufferutil@^4.0.1 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of utf-8-validate@^5.0.2 but none is installed. You must install peer dependencies yourself.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] postinstall: node ./postinstall.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

╭──────────────────────────────────────╮
│ │
│ Update available 5.6.0 → 6.14.8 │
│ Run npm i npm to update │
│ │
╰──────────────────────────────────────╯

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/mobilitypractice/.npm/_logs/2020-08-19T18_30_37_225Z-debug.log
2020-08-19T18_30_37_225Z-debug.log

Unable to run tests on Saucelabs using appium-classifier-plugin

Hi,
As per the readme and other references of this plugin, this can be integrated and run locally on the user machine. But if we need to run the same on Saucelabs / grid or on other such providers, then how do we integrate it to run on their remote machines / grid ?

Can we this for mobile browser in Javascript?

Hello,

It's great that you brought here, am looking this kind of plug in from long time.

Can I use this on mobile browser app in Javascript?
Os:Mac, framework :webdriverio
Mobile :iOS and Android

Thanks in advance

tf.fromPixels() is renamed to tf.browser.fromPixels(),You can disable deprecation warnings with tf.disableDeprecationWarnings().

Hi All , facing the following issue , while locating the element with ai.

[debug] [WD Proxy] Got response with status 200: "{"sessionId":"5b49b524-d285-4e48-a12b-e74bd1e1bea3","status":0,"value":"iVBORw0KGgoAAAANSUhEUgAAAtAAAAXwCAYAAAB7XHwkAAAABHNCSVQICAgIfAhkiAAAIABJREFU\neJzs3XdYVGfePvCb3mFARES62FAZFQtqIrZYUmxE3USDUdM22RA1ebPvu\/vGRLO7v3eLJWbT14ik\nGjWiaWqighU7oIIFpKoUlaF35vfHOMcZ5kw5MDS5P9eVKzPnnJnzMDPCPc95nu9jYe0\/WQkiIiIi\nIjKJZUc3gIiIiIioK2GAJiIiIiKSgAGaiIiIiEgCBmgiIiIiIgkYoImIiIiIJGCAJiIiIiKSgAGa\niIiIiEgCBmgiIiIiIgkYoImIiIiIJGCAJiIiIiKSgAGaiIiIiEgCBmgiIiIiIgkYoImIiIiIJGCA\nJiIiIiKSgAGaiIiIiEgCBmgiIiIiIgkYoImIiIiIJGCAJiIiIiKSgAGaiIiIiEgCBmgiIiIiIgkY\noImIiIiIJGCAJiIiIiKSgAGaiIiIiEgCBmgiIiIiIgkYoKnTc3FyhLOTg8nHy1yd4eLk2OL9RERE\nnc1L0bPx3394Gg72dh3dFAJg3dENoI7l7uaC0vIKODs6wMrKCqXlFWhqUmod80zUNMx7dALmLv9f\nYduuzX\/B9z8fxhc797dZ2\/oF++KFp59AcEBvKJXAtax8fPrVD8jKvSV6\/LiRQ\/BM1CPo1dMDAJB3\nswifff0jLl7OMmk\/ERFRZ2FvZwtraytUVFbD3c0FkRFy2NvZwsc7EZnZN8x2nvCwAZg1bRz6B\/vB\n3s7WbM9rTE1tHa5ez8Oe\/cdxNvWKyY9zdLCDlaUVyiur2rB1xjFAd2N9vD3h4uwIRVkFfH284Ozk\ngOSL11DX1NDRTQMAxCydB6+e7vj+58OwsrLE44+MwytL5uCNdz\...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Getting screenshot slices for each element
[ai] Making label predictions based on element images
tf.loadFrozenModel() is going away. Use tf.loadGraphModel() instead, and note the positional argument changes. You can disable deprecation warnings with tf.disableDeprecationWarnings().

============================
Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.

tf.fromPixels() is renamed to tf.browser.fromPixels(), please switch to the new method as the old method will be removed in TensorFlow.js 1.0. You can disable deprecation warnings with tf.disableDeprecationWarnings().

[ai] Predictions for 29 element(s) took 345.222 seconds
[ai] Found 0 matching elements
[ai] Resetting element response attribute setting to original value: ""
[UiAutomator2] Forwarding the following settings to the UiAutomator2 server: ["elementResponseAttributes"]
[debug] [WD Proxy] Matched '/appium/settings' to command name 'updateSettings'

trying to install appium classifer on mac getting error

I'm getting below error when trying to install classifier on mac:
Building TensorFlow Node.js bindings
node-pre-gyp install failed with error: Error: Command failed: node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://storage.googleapis.com/tf-builds/pre-built-binary/napi-v5/1.5.2/CPU-darwin-1.5.2.tar.gz
node-pre-gyp WARN Pre-built binaries not found for @tensorflow/[email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp)
Traceback (most recent call last):
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 50, in
sys.exit(gyp.script_main())
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 554, in script_main
return main(sys.argv[1:])
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 547, in main
return gyp_main(args)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/init.py", line 532, in gyp_main
generator.GenerateOutput(flat_list, targets, data, params)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 2215, in GenerateOutput
part_of_all=qualified_target in needed_targets)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 845, in Write
mac_bundle_deps, extra_outputs, part_of_all)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 1539, in WriteTarget
self.WriteSortedXcodeEnv(self.output, self.GetSortedXcodePostbuildEnv())
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 1896, in GetSortedXcodePostbuildEnv
additional_settings={'CHROMIUM_STRIP_SAVE_FILE': strip_save_file})
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 1885, in GetSortedXcodeEnv
additional_settings)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py", line 1616, in GetSortedXcodeEnv
additional_settings)
File "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py", line 1527, in _GetXcodeEnv
if XcodeVersion() >= '0500' and not env.get('SDKROOT'):
TypeError: '>=' not supported between instances of 'tuple' and 'str'
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node/lib/napi-v5/tfjs_binding.node" "--module_name=tfjs_binding" "--module_path=/Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node/lib/napi-v5" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=5" "--node_napi_label=napi-v5"
gyp ERR! cwd /Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node
gyp ERR! node -v v12.14.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node/lib/napi-v5/tfjs_binding.node --module_name=tfjs_binding --module_path=/Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node/lib/napi-v5 --napi_version=5 --node_abi_napi=napi --napi_build_version=5 --node_napi_label=napi-v5' (1)
node-pre-gyp ERR! stack at ChildProcess. (/Users/rahulsharma/automationcode/appium/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:210:5)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Darwin 19.2.0
node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/rahulsharma/automationcode/appium/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/rahulsharma/automationcode/appium/node_modules/@tensorflow/tfjs-node
node-pre-gyp ERR! node -v v12.14.0
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! not ok

[email protected] install /Users/rahulsharma/automationcode/appium/node_modules/canvas
node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download
[canvas] Success: "/Users/rahulsharma/automationcode/appium/node_modules/canvas/build/Release/canvas.node" is installed via remote

[email protected] install /Users/rahulsharma/automationcode/appium/node_modules/grpc
node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download
[grpc] Success: "/Users/rahulsharma/automationcode/appium/node_modules/grpc/src/node/extension_binary/node-v72-darwin-x64-unknown/grpc_node.node" is installed via remote

[email protected] install /Users/rahulsharma/automationcode/appium/node_modules/test-ai-classifier
node-gyp rebuild

CXX(target) Release/obj.target/test-ai-classifier/cc/main.o
In file included from ../cc/main.cc:3:
../cc/detection.h:6:10: fatal error: '../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h' file not found
#include "../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/test-ai-classifier/cc/main.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.2.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/rahulsharma/automationcode/appium/node_modules/test-ai-classifier
gyp ERR! node -v v12.14.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/rahulsharma/.npm/_logs/2020-01-31T13_33_16_099Z-debug.log

The module '/usr/local/lib/node_modules/test-ai-classifier/node_modules/canvas/build/Release/canvas.node'

When I run the test script, it showed:

Traceback (most recent call last):
File "/Users/adm/Desktop/test.py", line 40, in test_login
ele1 = self.driver.find_element('-custom', 'ai:cart')
File "/var/root/anaconda3/lib/python3.8/site-packages/appium/webdriver/webdriver.py", line 279, in find_element
return self.execute(RemoteCommand.FIND_ELEMENT, {
File "/var/root/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/var/root/anaconda3/lib/python3.8/site-packages/appium/webdriver/errorhandler.py", line 31, in check_response
raise wde
File "/var/root/anaconda3/lib/python3.8/site-packages/appium/webdriver/errorhandler.py", line 26, in check_response
super().check_response(response)
File "/var/root/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not load your custom find module 'ai'. Did you put it somewhere Appium can 'require' it? Original error: Error: The module '/Applications/Appium.app/Contents/Resources/app/node_modules/canvas/build/Release/canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 88. This version of Node.js requires
NODE_MODULE_VERSION 75. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).

How to solve this problem?

[BaseDriver] Didn't know about setting 'elementResponseAttributes'. when trying to use test-ai-classifier on linux

Node: v11.0.0
appium 1.9.2-beta.2

private By _next = MobileBy.custom("ai:next");
_mobileDriver.findElement(MobileBy.custom("ai:next")).click();

`[HTTP] --> POST /wd/hub/session/f342f7e2-943a-48e2-a44f-b2b4a7a440ee/element
[HTTP] {"using":"-custom","value":"ai:next"}
[debug] [W3C (f342f7e2)] Calling AppiumDriver.findElement() with args: ["-custom","ai:next","f342f7e2-943a-48e2-a44f-b2b4a7a440ee"]
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2018-10-31 11:04:37.527013: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Retrieving current settings to check element response attributes
[ai] We will need to update settings to include element response attributes
[BaseDriver] Didn't know about setting 'elementResponseAttributes'. Are you sure you spelled it correctly? Proceeding anyway. Valid settings: imageMatchThreshold,fixImageFindScreenshotDims,fixImageTemplateSize,checkForImageElementStaleness,autoUpdateImageElementPosition,imageElementTapStrategy,ignoreUnimportantViews
[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding '//[not(child::)]' using 'XPATH' with the contextId: '' multiple: true
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.ViewGroup, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.ViewGroup, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.ViewGroup, INSTANCE=11]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.ViewGroup, INSTANCE=11]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.ViewGroup, INSTANCE=14]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.ViewGroup, INSTANCE=14]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.ViewGroup, INSTANCE=17]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.ViewGroup, INSTANCE=17]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.ViewGroup, INSTANCE=18]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.ViewGroup, INSTANCE=18]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=7]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=7]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":[{"ELEMENT":"15"},{"ELEMENT":"16"},{"ELEMENT":"17"},{"ELEMENT":"18"},{"ELEMENT":"19"},{"ELEMENT":"20"},{"ELEMENT":"21"},{"ELEMENT":"22"},{"ELEMENT":"23"},{"ELEMENT":"24"},{"ELEMENT":"25"},{"ELEMENT":"26"},{"ELEMENT":"27"},{"ELEMENT":"28"},{"ELEMENT":"29"},{"ELEMENT":"30"},{"ELEMENT":"31"}]}
[debug] [AndroidBootstrap] Received command result from bootstrap
[ai] Getting window size in case we need to scale screenshot

Confidence Threshold at 0.2 found 0 matching elements despite highest confidence of 0.39

Appium Output:
Unless I completely misunderstand how this works I think this is a bug?

[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id
[debug] [BaseDriver] Waiting up to 20000 ms for condition
[debug] [JSONWP Proxy] Matched '/elements' to command name 'findElements'
[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8001/session/A4853193-80C9-4FB2-BF37-9C4E9A94633D/elements] with body: {"using":"xpath","value":"//[not(child::)]"}
[debug] [JSONWP Proxy] Got response with status 200: {"value":[{"ELEMENT":"7E000000-0000-0000-0614-000000000000","rect":{"y":44,"x":8,"width":51,"height":44}},{"ELEMENT":"7F000000-0000-0000-0614-000000000000","rect":{"y":52,"x":132,"width":111,"height":28}},{"ELEMENT":"B3000000-0000-0000-0614-000000000000","rect":{"y":200,"x":41,"width":293,"height":294}},{"ELEMENT":"B4000000-0000-0000-0614-000000000000","rect":{"y":613,"x":26,"width":323,"height":41}},{"ELEMENT":"B6000000-0000-0000-0614-000000000000","rect":{"y":662,"x":116,"width":143,"height":142}},{"ELEMENT":"84000000-0000-0000-0614-000000000000","rect":{"y":88,"x":0,"width":375,"height":724}},{"ELEMENT":"92000000-0000-0000-0614-000000000000","rect":{"y":104,"x":16,"width":50,"height":50}},{"ELEMENT":"93000000-0000-0000-0614-000000000000","rect":{"y":104,"x":82,"width":197,"height":21}},{"ELEMENT":"94000000-0000-0000-0614-000000000000","rect":{"y":132,"x":82,"width":197,"height":22}},{"ELEMENT":"99000000-0000-0000-0614-000000000000","rect":{"y":229,"x":0,"width":295,"height":1}},{"ELEMENT":"98000000-0000...
[ai] Getting window size in case we need to scale screenshot
[ai] Getting screenshot to use for classifier
[debug] [XCUITest] Taking screenshot with WDA
[debug] [JSONWP Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [JSONWP Proxy] Proxying [GET /screenshot] to [GET http://localhost:8001/session/A4853193-80C9-4FB2-BF37-9C4E9A94633D/screenshot] with no body
[debug] [XCUITest] Connection to WDA timed out
[debug] [iProxy] recv failed: Operation not permitted
[debug] [JSONWP Proxy] Got response with status 200: "{\n "value" : "iVBORw0KGgoAAAANSUhEUgAABGUAAAmECAIAAAAjR0TuAAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAAAgAAAAAAAATCAAAAKAAABMIAAATCAATtHGwVVeMAAEAASURBVHgB\r\n7N0HmF3HdSBoe9ZiAJiBzrkbzNbY9IyTSCIwgEDnHABKthVsU\/Ptjndnvf7Wnm8c\r\n1mPLsvcbT9ixPfNJligmBYpiBEmAiI3QaKDROSEwyxItUaIogsh3T916\/XDw6lW9\r\nU6fulZrE4dY8V586dbtfg1q+H1V16mfu\/Mj2vG3lJTsSaasu3ZlIW33ZrsTbmssH\r\ns00\/PPslu3PXkt2JtLuX7km83XPF3gTbvVfug6YfqPshr2uvGkq83Xf1fnZbd81w\r\nQm1o3TUXtPXX7oeGgzrCe228bjiR1rTsQCKtefnBRFpL0UiqrbX4UCKtrWQ0kdZe\r\nOpZI6ygbT7V1lk8k0roqJhNp3ZVTibSequm8TT8875BXsLd6JpHWVzObSOuvnUu8\r\nDdTNJ9421B9OpG1sOJJIu3\/F0bxNPzzvUN7gx68\/9hNrn7jhZXb7jRtfSaT95k2v\r\nJt5+6+bXsk0\/PPslu\/PJW15PpH3q1jcSb5\/++TfZ7TMf\/Xaq7bf\/5T8l0n7nF76T\r\nSPvdX\/xu3qYfnneIEvyZvFiCYCJYgockgiV4SOJYggdiFImXfCklXqKB6gIsAZPE\r\nSxRQpYoleHgiWIKHJIIleEgiWIKHpIoleHgiWIKHJIIleEgiWIKH2PAjXqKzKnEs\r\nwQMTwRI8JBEswUPy4geC4iU3qxLHEjwQo0i85KZUqliChyeCJXhIIliCh9jwI17i\r\nrzuJl3yNhPPFS+Ilc0mKYiFKjniJJyjxEk9Q4iW6i2yZ4iWbpsz4T2xxCb4Re3EJ\r...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Screenshot and screen size did not match. Screen size is 375x812 but screenshot size is 1125x2436. Scaling screenshot to match screen size
[ai] Getting screenshot slices for each element
[debug] [XCUITest] Connection to WDA timed out
[debug] [iProxy] recv failed: Operation not permitted
[ai] Making label predictions based on element images

[ai] Found 0 matching elements
[ai] Highest confidence of any element for desired label 'send' was 0.39494359493255615

error: Element had a width or height of zero; cannot slice such an image

Failed for below line of code:
wait.until(ExpectedConditions.presenceOfElementLocated(MobileBy.custom("ai:bluetooth"))).click();

Mode: testaiFindMode: object_detection

Appium Server Log:

[ai] Writing screenshot to /usr/local/lib/node_modules/test-ai-classifier/build-js/lib/Fri, 23 Jul 2021 23:48:54 GMT_classifiertest.png for use in object detection
[ai] Gathering object candidates from tensorflow native
2021-07-23 19:48:54.582361: I tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model
2021-07-23 19:48:54.735042: I tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2021-07-23 19:48:55.471939: I tensorflow/cc/saved_model/loader.cc:202] Restoring SavedModel bundle.
2021-07-23 19:48:55.472008: I tensorflow/cc/saved_model/loader.cc:212] The specified SavedModel has no variables; no checkpoints were restored. File does not exist: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model/variables/variables.index
2021-07-23 19:48:55.472023: I tensorflow/cc/saved_model/loader.cc:311] SavedModel load for tags { serve }; Status: success. Took 889664 microseconds.
[ai] Candidates retrieved
[debug] [W3C (4be259c1)] Encountered internal error running command: Error: Element had a width or height of zero; cannot slice such an image
[debug] [W3C (4be259c1)]     at elementImageFromScreenshot (/usr/local/lib/node_modules/test-ai-classifier/lib/image.js:45:11)
[debug] [W3C (4be259c1)]     at map (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:340:23)
[debug] [W3C (4be259c1)]     at Array.map (<anonymous>)
[debug] [W3C (4be259c1)]     at asyncmap (/usr/local/lib/node_modules/test-ai-classifier/node_modules/asyncbox/lib/asyncbox.js:99:26)
[debug] [W3C (4be259c1)]     at findByObjectDetector (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:339:30)
[debug] [W3C (4be259c1)]     at runMicrotasks (<anonymous>)
[debug] [W3C (4be259c1)]     at processTicksAndRejections (internal/process/task_queues.js:95:5)
[debug] [W3C (4be259c1)]     at Object.find (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:375:12)
[debug] [W3C (4be259c1)]     at condition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:158:16)
[debug] [W3C (4be259c1)]     at wrappedCondFn (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:151:12)
[debug] [W3C (4be259c1)]     at spin (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:138:20)
[debug] [W3C (4be259c1)]     at waitForCondition (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:154:10)
[debug] [W3C (4be259c1)]     at AndroidUiautomator2Driver.implicitWaitForCondition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:153:10)
[debug] [W3C (4be259c1)]     at AndroidUiautomator2Driver.findByCustom (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:172:5)
[debug] [W3C (4be259c1)]     at AndroidUiautomator2Driver.findElement (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:50:12)
[HTTP] <-- POST /wd/hub/session/4be259c1-7fc0-42c7-8612-8af8e8d6ee38/element 500 17760 ms - 627
[HTTP] 

Java Exception:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Element had a width or height of zero; cannot slice such an image
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'Vikas-MacBook-Pro.local', ip: '2601:cb:8280:3cd0:71af:483c:c870:4847%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.16', java.version: '1.8.0_301'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities {appActivity: com.android.settings.Settings, customFindModules: {ai: test-ai-classifier}, databaseEnabled: false, desired: {appActivity: com.android.settings.Settings, customFindModules: {ai: test-ai-classifier}, deviceName: emulator-5554, fastReset: true, platformName: android, shouldUseCompactResponses: false, testaiFindMode: object_detection, testaiObjDetectionDebug: true}, deviceApiLevel: 30, deviceManufacturer: Google, deviceModel: sdk_gphone_x86_arm, deviceName: emulator-5554, deviceScreenDensity: 440, deviceScreenSize: 1080x2340, deviceUDID: emulator-5554, fastReset: true, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, pixelRatio: 2.75, platform: LINUX, platformName: Android, platformVersion: 11, shouldUseCompactResponses: false, statBarHeight: 136, takesScreenshot: true, testaiFindMode: object_detection, testaiObjDetectionDebug: true, viewportRect: {height: 1936, left: 0, top: 136, width: 1080}, warnings: {}, webStorageEnabled: false}
Session ID: 4be259c1-7fc0-42c7-8612-8af8e8d6ee38
*** Element info: {Using=-custom, value=ai:bluetooth}

Capabilities:

capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
        capabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.android.settings.Settings");
        capabilities.setCapability("fastReset", "true");
        HashMap<String, String> customFindModules = new HashMap<>();
        customFindModules.put("ai", "test-ai-classifier");
        capabilities.setCapability("customFindModules", customFindModules);
        capabilities.setCapability("shouldUseCompactResponses", false);
        capabilities.setCapability("testaiFindMode","object_detection");
        capabilities.setCapability("testaiObjDetectionDebug","true");
AppiumDriver<WebElement> driver = new AndroidDriver<>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
        ((AndroidDriver)driver).startActivity(new Activity("com.android.settings","com.android.settings.Settings"));

Error: Prediction result array had 4 elements but labels list had 106 elements. They need to match.

Hi All,

Getting the following Error , I have created my own data for Amazon Android App. Created Models with the guidance https://medium.com/testdotai/training-data-for-app-classifier-f217dc005523 . Getting this issue , while searching for a 'search' Icon

[debug] [WD Proxy] Got response with status 200: {"sessionId":"136b372d-1f75-42bf-b557-366a916766dc","status":0,"value":true}
[debug] [W3C (1856affc)] Encountered internal error running command: Error: Prediction result array had 4 elements but labels list had 106 elements. They need to match.
[debug] [W3C (1856affc)] at getConfidenceMap (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:130:11)
[debug] [W3C (1856affc)] at predictionsFromImages (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:101:21)
[debug] [W3C (1856affc)] at getMatchingElements (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:210:17)
[debug] [W3C (1856affc)] at Object.find (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:275:12)
[debug] [W3C (1856affc)] at condition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:158:16)
[debug] [W3C (1856affc)] at wrappedCondFn (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:157:12)
[debug] [W3C (1856affc)] at spin (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:112:20)
[debug] [W3C (1856affc)] at waitForCondition (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:125:10)
[debug] [W3C (1856affc)] at AndroidUiautomator2Driver.implicitWaitForCondition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:159:10)
[debug] [W3C (1856affc)] at AndroidUiautomator2Driver.findByCustom (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:172:5)
[debug] [W3C (1856affc)] at AndroidUiautomator2Driver.findElement (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:50:12)
[HTTP] <-- POST /wd/hub/session/1856affc-ac0f-4e66-b9bb-5210dd5dfd14/element 500 14949 ms - 681
[HTTP]

Issue while finding an element: Cannot read property 'x' of undefined

Appum version: 1.9.2-beta.2
java client: 969fac6a1c6dd229bdefb02ff10e71c812701e0c

Code to find element:
public By cartImageWithAI = MobileBy.custom("ai:search");

Error: [debug] [W3C (7add219f)] Encountered internal error running command: TypeError: Cannot read property 'x' of undefined
[debug] [W3C (7add219f)] at x (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/image.js:50:10)

Below are full appium error logs:

[HTTP] {"using":"-custom","value":"ai:search"}
[debug] [W3C (7add219f)] Calling AppiumDriver.findElements() with args: ["-custom","ai:search","7add219f-5d57-4eab-99a4-cbc778d89d50"]
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Retrieving current settings to check element response attributes
[ai] We will need to update settings to include element response attributes
[BaseDriver] Didn't know about setting 'elementResponseAttributes'. Are you sure you spelled it correctly? Proceeding anyway. Valid settings: imageMatchThreshold,fixImageFindScreenshotDims,fixImageTemplateSize,checkForImageElementStaleness,autoUpdateImageElementPosition,imageElementTapStrategy,ignoreUnimportantViews
[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding '//[not(child::)]' using 'XPATH' with the contextId: '' multiple: true
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.support.v7.widget.RecyclerView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.support.v7.widget.RecyclerView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":[{"ELEMENT":"3"},{"ELEMENT":"4"},{"ELEMENT":"5"},{"ELEMENT":"6"},{"ELEMENT":"7"},{"ELEMENT":"8"},{"ELEMENT":"9"},{"ELEMENT":"10"}]}
[debug] [AndroidBootstrap] Received command result from bootstrap
[ai] Getting window size in case we need to scale screenshot
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"getDeviceSize","params":{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"getDeviceSize","params":{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: getDeviceSize
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":{"height":960,"width":540}}
[debug] [AndroidBootstrap] Received command result from bootstrap
[ai] Getting screenshot to use for classifier
[debug] [ADB] Device API level: 23
[ai] Turning screenshot into HTML image for use with canvas
[ai] Getting screenshot slices for each element
[ai] Resetting element response attribute setting to original value: undefined
[debug] [W3C (7add219f)] Encountered internal error running command: TypeError: Cannot read property 'x' of undefined
[debug] [W3C (7add219f)] at x (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/image.js:50:10)

[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:116:28
[debug] [W3C (7add219f)] at Generator.next ()
[debug] [W3C (7add219f)] at asyncGeneratorStep (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[debug] [W3C (7add219f)] at _next (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:32:7
[debug] [W3C (7add219f)] at new Promise ()
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:21:12
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:114:30
[debug] [W3C (7add219f)] at Array.map ()
[debug] [W3C (7add219f)] at map (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/asyncbox/lib/asyncbox.js:75:26)
[debug] [W3C (7add219f)] at Generator.next ()
[debug] [W3C (7add219f)] at asyncGeneratorStep (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[debug] [W3C (7add219f)] at _next (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:32:7
[debug] [W3C (7add219f)] at new Promise ()
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:21:12
[debug] [W3C (7add219f)] at asyncmap (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/asyncbox/build/lib/asyncbox.js:160:20)
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:114:30
[debug] [W3C (7add219f)] at Generator.next ()
[debug] [W3C (7add219f)] at asyncGeneratorStep (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[debug] [W3C (7add219f)] at _next (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:32:7
[debug] [W3C (7add219f)] at new Promise ()
[debug] [W3C (7add219f)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:21:12
[debug] [W3C (7add219f)] at getElementImages (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/build/lib/classifier.js:154:28)
[debug] [W3C (7add219f)] at Object.getElementImages (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:205:32)
[debug] [W3C (7add219f)] at Generator.next ()
[debug] [W3C (7add219f)] at asyncGeneratorStep (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[debug] [W3C (7add219f)] at _next (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
[debug] [W3C (7add219f)] at
[HTTP] <-- POST /wd/hub/session/7add219f-5d57-4eab-99a4-cbc778d89d50/elements 500 8178 ms - 850
[HTTP]

Model Returns no match/wrong matches via classifier client but identifies the image correctly when tested stand alone

Hi,

I am trying to adopt this classifier for Selenium Web. So what i did is :
(1) Add new datasets to the model
(2) Retrain and export model.json,shard.bin and saved_mode.pb to the classifier server repo
(3) Change the labels and start the RPC server

Now through the python client, i am passing the new label and matching elements to find via xpath but it returns no matches, the same image when i run standalone to the model identifies the object correctly. Stuck on this issue for hours. Can anyone give some insights on how to fix this? Thanks a lot!

Getting an issue on trying this plugin on Windows 10

Hi Team,
This is a wonderful plugin and can easily visualize it's bright future.
I tried to give it a shot on Windows 10 machine for Android.
I was able to install the plugin successfully using npm install
But, when I try to execute my script having driver.FindElement("-custom","ai:plus");
I receive this error:-
{ Error: Cannot find module '../build/Release/canvas.node'
at require (internal/modules/cjs/helpers.js:22:18)
at Module.require (internal/modules/cjs/loader.js:637:17)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) code: 'MODULE_NOT_FOUND' }

Somewhere I read to upgrade node.js to latest version to get rid of this issue. But, even after upgrading to 10.15.3, getting same error.
Any idea why this might be occurring?
Any near future plans for supporting this plugin against Windows ? It would be awesome if it starts working against Windows.

Thanks & Regards,
Nishant Shah

Unable to run plugin

I am using macOS Catalina and I am unable to run plugin with following output:

2020-01-09 00:30:14.874293: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-09 00:30:14.895300: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x102a3c6a0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-09 00:30:14.895345: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version

Any thoughts how to fixit?

Unable to run tests using Element lookup & Object Detection mode for iOS simulators

Hi @jlipps ,

I tried to run the same tests on iOS Simulators which was successful on Android Emulators. But its unable to identify elements & below are the error details. Can you please guide & help resolve the issue here?

For Element Lookup Mode:

`
Code used ::
$("findElementByCustom :::----> Search icon using AI");
getAppDriver().findElement(MobileBy.custom("ai:search")).click();

Capabilities set
capabilities.setCapability("customFindModules", customFindModules);
capabilities.setCapability("testaiFindMode", "element_lookup");
capabilities.setCapability("testaiObjectDetectionThreshold", "0.1");
capabilities.setCapability("shouldUseCompactResponses", false);

2020-01-29 13:13:04,144 120104 [TestNG-tests-1] INFO com.walmart.asda.mobile.poc.TestSearch_01 - Executing : findElementByCustom :::----> Search icon using AI
[HTTP] --> POST /wd/hub/session/787a5a29-2972-4377-b5c1-d354b07c8b6b/element
[HTTP] {"using":"-custom","value":"ai:search"}
[debug] [W3C (787a5a29)] Calling AppiumDriver.findElement() with args: ["-custom","ai:search","787a5a29-2972-4377-b5c1-d354b07c8b6b"]
[debug] [XCUITest] Executing command 'findElement'
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2020-01-29 13:13:06.149943: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-29 13:13:06.183955: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x102b8ec80 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-29 13:13:06.183991: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Retrieving current settings to check element response attributes
[ai] We will need to update settings to include element response attributes
[debug] [WD Proxy] Matched '/appium/settings' to command name 'updateSettings'
[debug] [WD Proxy] Proxying [POST /appium/settings] to [POST http://localhost:49049/session/C8C31F6A-57DD-4036-9457-297962A87A38/appium/settings] with body: {"settings":{"elementResponseAttributes":"rect"}}
[debug] [WD Proxy] Got response with status 200: {"value":{"screenshotQuality":1,"mjpegScalingFactor":100,"elementResponseAttributes":"rect","shouldUseCompactResponses":false,"mjpegServerFramerate":10,"mjpegServerScreenshotQuality":25},"sessionId":"C8C31F6A-57DD-4036-9457-297962A87A38","status":0}
[ai] Setting confidence threshold to default value of 0.1
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id

[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [WD Proxy] Matched '/elements' to command name 'findElements'
[debug] [WD Proxy] Proxying [POST /elements] to [POST http://localhost:49049/session/C8C31F6A-57DD-4036-9457-297962A87A38/elements] with body: {"using":"xpath","value":"//[not(child::)]"}
[debug] [WD Proxy] Got response with status 200: {"value":[{"ELEMENT":"2F000000-0000-0000-8852-010000000000","rect":{"y":0,"x":0,"width":375,"height":40}},{"ELEMENT":"3C000000-0000-0000-8852-010000000000","rect":{"y":50,"x":150,"width":75,"height":32}},{"ELEMENT":"3D000000-0000-0000-8852-010000000000","rect":{"y":44,"x":286,"width":73,"height":44}},{"ELEMENT":"A4000000-0000-0000-8852-010000000000","rect":{"y":88,"x":0,"width":375,"height":62}},{"ELEMENT":"A5000000-0000-0000-8852-010000000000","rect":{"y":88,"x":16,"width":359,"height":62}},{"ELEMENT":"C1000000-0000-0000-8852-010000000000","rect":{"y":170,"x":16,"width":119,"height":27}},{"ELEMENT":"C2000000-0000-0000-8852-010000000000","rect":{"y":196,"x":16,"width":266,"height":49}},{"ELEMENT":"C3000000-0000-0000-8852-010000000000","rect":{"y":248,"x":16,"width":343,"height":3}},{"ELEMENT":"C4000000-0000-0000-8852-010000000000","rect":{"y":254,"x":16,"width":214,"height":25}},{"ELEMENT":"D0000000-0000-0000-8852-010000000000","rect":{"y":308,"x":16,"width":164,"height":40}},{"ELEMENT":"D1000000-0000-0000...
[ai] Getting window size in case we need to scale screenshot
[debug] [WD Proxy] Proxying [GET /window/size] to [GET http://localhost:49049/session/C8C31F6A-57DD-4036-9457-297962A87A38/window/size] with no body
[debug] [WD Proxy] Got response with status 200: "{\n "value" : {\n "width" : 375,\n "height" : 812\n },\n "sessionId" : "C8C31F6A-57DD-4036-9457-297962A87A38",\n "status" : 0\n}"
[ai] Getting screenshot to use for classifier
[debug] [XCUITest] Taking screenshot with WDA
[debug] [WD Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [WD Proxy] Proxying [GET /screenshot] to [GET http://localhost:49049/session/C8C31F6A-57DD-4036-9457-297962A87A38/screenshot] with no body
[debug] [WD Proxy] Got response with status 200: "{\n "value" : "iVBORw0KGgoAAAANSUhEUgAABGUAAAmECAIAAAAjR0TuAAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAAAgAAAAAAAATCAAAAKAAABMIAAATCAAavDLBpvG4AAEAASURBVHgB\r\n7L0HfB7Fue9\/z\/3fc0\/LOScJ1V2W5YYxJUDoENKBAKElhBQIkBBOICS4qEuWuwED\r\nSSAhpN4AORwCBDf1atNC770GAqa6SZZkSd7\/95nnfcdrWRjZ4AL+7We9np2dnZn9\r\n7uyr57fPzOz\/+l9aREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAE\r\nREAEREAEREA...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Screenshot and screen size did not match. Screen size is 375x812 but screenshot size is 1125x2436. Scaled screenshot to match screen size
[ai] Getting screenshot slices for each element
[ai] Resetting element response attribute setting to original value: "type,label"
[debug] [WD Proxy] Matched '/appium/settings' to command name 'updateSettings'
[debug] [WD Proxy] Proxying [POST /appium/settings] to [POST http://localhost:49049/session/C8C31F6A-57DD-4036-9457-297962A87A38/appium/settings] with body: {"settings":{"elementResponseAttributes":"type,label"}}
[debug] [WD Proxy] Got response with status 200: {"value":{"screenshotQuality":1,"mjpegScalingFactor":100,"elementResponseAttributes":"type,label","shouldUseCompactResponses":false,"mjpegServerFramerate":10,"mjpegServerScreenshotQuality":25},"sessionId":"C8C31F6A-57DD-4036-9457-297962A87A38","status":0}
[debug] [W3C (787a5a29)] Encountered internal error running command: TypeError: Cannot destructure property x of 'undefined' or 'null'.
[debug] [W3C (787a5a29)] at getCanvasByRect (/usr/local/lib/node_modules/test-ai-classifier/lib/image.js:57:9)
[debug] [W3C (787a5a29)] at map (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:171:28)
[debug] [W3C (787a5a29)] at Array.map ()
[debug] [W3C (787a5a29)] at asyncmap (/usr/local/lib/node_modules/test-ai-classifier/node_modules/asyncbox/lib/asyncbox.js:74:26)
[debug] [W3C (787a5a29)] at getElementImages (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:169:30)
[debug] [W3C (787a5a29)] at findViaElementScreenshots (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:303:32)
[debug] [W3C (787a5a29)] at Object.find (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:377:12)
[debug] [W3C (787a5a29)] at condition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:159:16)
[debug] [W3C (787a5a29)] at wrappedCondFn (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:157:12)
[HTTP] <-- POST /wd/hub/session/787a5a29-2972-4377-b5c1-d354b07c8b6b/element 500 43510 ms - 611
[HTTP]

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Cannot destructure property x of 'undefined' or 'null'.
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'm-c02xf25rjg5h', ip: 'fe80:0:0:0:1c5b:4ba:7301:ce39%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_192'
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities {app: /Users/kverma1/Documents/mo..., automationName: XCUITest, browserName: , customFindModules: {ai: test-ai-classifier}, databaseEnabled: false, deviceName: iPhone X, fullReset: true, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: false, newCommandTimeout: 120, noReset: false, platform: MAC, platformName: iOS, platformVersion: 12.0, shouldUseCompactResponses: false, takesScreenshot: true, testaiFindMode: element_lookup, testaiObjectDetectionThreshold: 0.1, udid: E18161C4-00ED-481A-9281-867..., useNewWDA: false, wdaLocalPort: 49049, webStorageEnabled: false}
Session ID: 787a5a29-2972-4377-b5c1-d354b07c8b6b
*** Element info: {Using=-custom, value=ai:search}

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.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:61)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
at io.appium.java_client.FindsByCustom.findElementByCustom(FindsByCustom.java:38)
at io.appium.java_client.MobileBy$ByCustom.findElement(MobileBy.java:623)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:314)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:57)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
at com.walmart.asda.mobile.poc.TestSearch_01.testBasicSearch_PhoneAndClickFav(TestSearch_01.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

`

For Object Detection Mode:
`
Code used ::
$("findElementByCustom :::----> Search icon using AI");
getAppDriver().findElement(MobileBy.custom("ai:search")).click();

Capabilities set
capabilities.setCapability("customFindModules", customFindModules);
capabilities.setCapability("testaiFindMode", "element_lookup");
capabilities.setCapability("testaiObjectDetectionThreshold", "0.1");
capabilities.setCapability("shouldUseCompactResponses", false);

2020-01-29 13:42:08,349 120921 [TestNG-tests-1] INFO com.walmart.asda.mobile.poc.TestSearch_01 - Executing : findElementByCustom :::----> Search icon using AI
[HTTP] --> POST /wd/hub/session/8653e25f-6cd0-4603-b4c2-a942bf0c2f77/element
[HTTP] {"using":"-custom","value":"ai:search"}
[debug] [W3C (8653e25f)] Calling AppiumDriver.findElement() with args: ["-custom","ai:search","8653e25f-6cd0-4603-b4c2-a942bf0c2f77"]
[debug] [XCUITest] Executing command 'findElement'
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2020-01-29 13:42:10.518184: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-01-29 13:42:10.544574: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x10c8c5770 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-01-29 13:42:10.544601: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Will use object detection method for finding elements via AI
[ai] Setting confidence threshold to default value of 0.1
[ai] Getting window size in case we need to scale screenshot
[debug] [WD Proxy] Proxying [GET /window/size] to [GET http://localhost:46146/session/27188DFA-B718-41AD-AEF5-B4FCBAFDDBB4/window/size] with no body
[debug] [WD Proxy] Got response with status 200: "{\n "value" : {\n "width" : 375,\n "height" : 812\n },\n "sessionId" : "27188DFA-B718-41AD-AEF5-B4FCBAFDDBB4",\n "status" : 0\n}"
[ai] Getting screenshot to use for classifier
[debug] [XCUITest] Taking screenshot with WDA
[debug] [WD Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [WD Proxy] Proxying [GET /screenshot] to [GET http://localhost:46146/session/27188DFA-B718-41AD-AEF5-B4FCBAFDDBB4/screenshot] with no body
[debug] [WD Proxy] Got response with status 200: "{\n "value" : "iVBORw0KGgoAAAANSUhEUgAABGUAAAmECAIAAAAjR0TuAAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAAAgAAAAAAAATCAAAAKAAABMIAAATCAAavbYrc7aAAAEAASURBVHgB\r\n7J0HnB5Vvfdf3\/fe973FexWlpSebTSOEIiBdRK4FFJAqoleqIioipGzfzaaRAAFU\r\nVNSLeilepQTStj9bEpr03qtECISQutnd7G7m\/f7P\/3lOnuxuQgrJRvKbz2Ry5syZ\r\nc\/7znTnP\/n9zyvyv\/6VFBERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERA\r\nBERABERAB...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Screenshot and screen size did not match. Screen size is 375x812 but screenshot size is 1125x2436. Scaled screenshot to match screen size
[ai] Writing screenshot to /usr/local/lib/node_modules/test-ai-classifier/build-js/lib/Wed, 29 Jan 2020 08:12:11 GMT_classifiertest.png for use in object detection
[ai] Gathering object candidates from tensorflow native
2020-01-29 13:42:11.456773: I tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model
2020-01-29 13:42:11.756360: I tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2020-01-29 13:42:12.260225: I tensorflow/cc/saved_model/loader.cc:202] Restoring SavedModel bundle.
2020-01-29 13:42:12.261404: I tensorflow/cc/saved_model/loader.cc:212] The specified SavedModel has no variables; no checkpoints were restored. File does not exist: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model/variables/variables.index
2020-01-29 13:42:12.261778: I tensorflow/cc/saved_model/loader.cc:311] SavedModel load for tags { serve }; Status: success. Took 805000 microseconds.
[ai] Candidates retrieved
[ai] Making label predictions based on element images
This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.
[ai] Predictions for 34 element(s) took 0.686 seconds
[ai] Found 1 matching elements
[ai] Highest confidence of any element for desired label 'search' was 0.9994727373123169
[ai] Registering image elements with driver
[debug] [W3C (8653e25f)] Encountered internal error running command: TypeError: driver.registerImageElement is not a function
[debug] [W3C (8653e25f)] at map (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:365:19)
[debug] [W3C (8653e25f)] at Array.map ()
[debug] [W3C (8653e25f)] at findByObjectDetector (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:357:24)
[debug] [W3C (8653e25f)] at Object.find (/usr/local/lib/node_modules/test-ai-classifier/lib/classifier.js:375:12)
[debug] [W3C (8653e25f)] at condition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:159:16)
[debug] [W3C (8653e25f)] at wrappedCondFn (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:157:12)
[HTTP] <-- POST /wd/hub/session/8653e25f-6cd0-4603-b4c2-a942bf0c2f77/element 500 17780 ms - 587
[HTTP]

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: driver.registerImageElement is not a function
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'm-c02xf25rjg5h', ip: 'fe80:0:0:0:1c5b:4ba:7301:ce39%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_192'
Driver info: io.appium.java_client.ios.IOSDriver
Capabilities {app: /Users/kverma1/Documents/mo..., automationName: XCUITest, browserName: , customFindModules: {ai: test-ai-classifier}, databaseEnabled: false, deviceName: iPhone X, fullReset: true, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: false, newCommandTimeout: 120, noReset: false, platform: MAC, platformName: iOS, platformVersion: 12.0, shouldUseCompactResponses: false, takesScreenshot: true, testaiFindMode: object_detection, testaiObjectDetectionThreshold: 0.4, udid: E18161C4-00ED-481A-9281-867..., useNewWDA: false, wdaLocalPort: 46146, webStorageEnabled: false}
Session ID: 8653e25f-6cd0-4603-b4c2-a942bf0c2f77
*** Element info: {Using=-custom, value=ai:search}

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.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:61)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
at io.appium.java_client.FindsByCustom.findElementByCustom(FindsByCustom.java:38)
at io.appium.java_client.MobileBy$ByCustom.findElement(MobileBy.java:623)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:314)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:57)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.ios.IOSDriver.findElement(IOSDriver.java:1)
at com.walmart.asda.mobile.poc.TestSearch_01.testBasicSearch_PhoneAndClickFav(TestSearch_01.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

`
image

Appium server abort after find element by ai: search

  • Appium

Log
[HTTP] {"using":"-custom","value":"ai:search"}
[debug] [W3C (064ec6c5)] Calling AppiumDriver.findElement() with args: ["-custom","ai:search","064ec6c5-762b-4a34-a690-67e65723dbaa"]
[debug] [XCUITest] Executing command 'findElement'
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2018-10-22 14:04:32.445983: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.2 AVX AVX2 FMA
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Retrieving current settings to check element response attributes
(node:7264) Warning: N-API is an experimental feature and could change at any time.
[ai] We will need to update settings to include element response attributes
[debug] [JSONWP Proxy] Matched '/appium/settings' to command name 'updateSettings'
[debug] [JSONWP Proxy] Proxying [POST /appium/settings] to [POST http://localhost:8100/session/F7F716B2-E1BC-4C5E-81E2-B680BEB1E917/appium/settings] with body: {"settings":{"elementResponseAttributes":"rect"}}
[debug] [JSONWP Proxy] Got response with status 200: {"value":{"elementResponseAttributes":"rect","shouldUseCompactResponses":false},"sessionId":"F7F716B2-E1BC-4C5E-81E2-B680BEB1E917","status":0}
[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [JSONWP Proxy] Matched '/elements' to command name 'findElements'
[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8100/session/F7F716B2-E1BC-4C5E-81E2-B680BEB1E917/elements] with body: {"using":"xpath","value":"//[not(child::)]"}
[debug] [JSONWP Proxy] Got response with status 200: {"value":[{"ELEMENT":"03000000-0000-0000-2B1D-000000000000","rect":{"y":20,"x":0,"width":44,"height":44}},{"ELEMENT":"19000000-0000-0000-2B1D-000000000000","rect":{"y":30,"x":159,"width":57,"height":24}},{"ELEMENT":"1A000000-0000-0000-2B1D-000000000000","rect":{"y":20,"x":310,"width":57,"height":44}},{"ELEMENT":"1E000000-0000-0000-2B1D-000000000000","rect":{"y":33,"x":0,"width":93,"height":94}},{"ELEMENT":"27000000-0000-0000-2B1D-000000000000","rect":{"y":72,"x":16,"width":319,"height":24}},{"ELEMENT":"28000000-0000-0000-2B1D-000000000000","rect":{"y":95,"x":118,"width":104,"height":20}},{"ELEMENT":"29000000-0000-0000-2B1D-000000000000","rect":{"y":95,"x":16,"width":82,"height":20}},{"ELEMENT":"2A000000-0000-0000-2B1D-000000000000","rect":{"y":144,"x":16,"width":319,"height":24}},{"ELEMENT":"2B000000-0000-0000-2B1D-000000000000","rect":{"y":167,"x":118,"width":84,"height":20}},{"ELEMENT":"2C000000-0000-0000-2B1D-000000000000","rect":{"y":167,"x":16,"width":82,"height":20}},{"ELEMENT":"21000000-0000-0000-2B...
[ai] Getting window size in case we need to scale screenshot
[ai] Getting screenshot to use for classifier
[debug] [XCUITest] Taking screenshot with WDA
[debug] [JSONWP Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [JSONWP Proxy] Proxying [GET /screenshot] to [GET http://localhost:8100/session/F7F716B2-E1BC-4C5E-81E2-B680BEB1E917/screenshot] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{\n "value" : "iVBORw0KGgoAAAANSUhEUgAAAu4AAAU2CAIAAABFtaRRAAAAAXNSR0IArs4c6QAA\r\nABxpRE9UAAAAAgAAAAAAAAKbAAAAKAAAApsAAAKbAAOCmQOFTr0AAEAASURBVHgB\r\n7J0HnCRFucCXnHPQJ6CCiooBfWJ6ZkTCkQQFJR\/HwZEPuMwdIPBUeChwOcIhIAIC\r\nIuEkSOZId3BwcfNO3pnZvLOTQ71\/9bfb19czPTtzt4vc0fWrX23111VfVdd2Vf\/7\r\nq6qemniVLpFIlfTxeNLBV1dAompXuj4lK2kI+wtIDriU4QaO7H8TyXRVPplMV+Wl\r\n9MrDZCozrN6sSdp1bgu4LeC2gNsCm3MLZFLZdDoby+Z7c9rHM\/lcKq0SSdUXV319\r\nKtGnkvF0Jp7KpBPaZ4lU5TsL2Z58lryZVDqfTOIzaVGoQ+K5FGEyneappYsYPldT\r\nHWjE406I4MAx8E11rmqScUArp3qa+q3MwvPbemiNV8UxJK6KY0hsokOFkWHlGJSb\r\n1Ri+e87V7LaA2wJuC7gt8CG0QC6pUSaRyUMzeCLAjUqkVTyufSKeT8WFM1LpLDRS\r\nbZXgmFhOAxCElE9qmhkAF\/2kIq59SmvVhJSmMsPlNhuUESAyQcQS2VSrjBVciuMu\r\nygzXrefqdVvAbQG3BdwWGM4WyCezmmZSGmIS6QIhcSSCHblUP2eAO8jTqQKnqvIG\r\nnegsFKQSWm0\/uGgw0l5r7leuix6+a60aZZytL8M7wWTadiwQI1EXZYZyysm1ygxf\r\nZ3M1uy3gtoDbAh9mCxjIktXTTKk8dhNQhnCAMMyKmLShUUbop8JQ9JNYPNkBF\/Rr\r\ncjK8tvRoSMIapL1Z5JBHavocnIkORREnZHGSFynYZMGGNLORKCNKis0wNolrlRny\r\ne85V6La...
[ai] Turning screenshot into HTML image for use with canvas
dyld: lazy symbol binding failed: Symbol not found: __ZN2v87Isolate19CheckMemoryPressureEv
Referenced from: /usr/local/lib/node_modules/test-ai-classifier/node_modules/canvas/build/Release/canvas.node
Expected in: flat namespace

dyld: Symbol not found: __ZN2v87Isolate19CheckMemoryPressureEv
Referenced from: /usr/local/lib/node_modules/test-ai-classifier/node_modules/canvas/build/Release/canvas.node
Expected in: flat namespace

  • Code

    @BeforeTest
    public void setUp() throws IOException {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "iOS");
    caps.setCapability("platformVersion", "12.0");
    caps.setCapability("deviceName", "iPhone 6");
    caps.setCapability("bundleId", BUNDLE_ID);

      HashMap<String, String> customFindModules = new HashMap<>();
      customFindModules.put("ai", "test-ai-classifier");
    
      caps.setCapability("customFindModules", customFindModules);
      caps.setCapability("shouldUseCompactResponses", false);
    
      driver = new IOSDriver<MobileElement>(new URL("http://localhost:4723/wd/hub"), caps);
      wait = new WebDriverWait(driver, 10);
    

    }

    @AfterTest
    public void tearDown() {
    try {
    driver.quit();
    } catch (Exception ign) {
    }
    }

    @test
    public void testFindElementUsingAI() {
    // find and click on the search button using the classifier
    driver.findElement(search).click();

      // prove that the click was successful by locating the 'cancel' button
      wait.until(ExpectedConditions.presenceOfElementLocated(cancel));
    

    }

The following capabilities were provided, but are not recognized by appium: customFindModules

[Appium] Welcome to Appium v1.9.2-beta.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

Running Appium v1.9.2-beta.2 and I get "not recognized by appium: customFindModules"
" caps: {
platformName: fake
browserName: info,
versionNumber: goes,
deviceName: here,
wdaLocalPort: 8001,
udid: 'auto',
app: nda,
automationName: over,
noReset: compliance,
xcodeOrgId: thanks,
xcodeSigningId: for,
useNewWDA: understanding,
newCommandTimeout: 10000,
customFindModules: {
"ai": "test-ai-classifier"
},
shouldUseCompactResponses: false"

Can anyone tell me why my Appium server won't recognize the new capability?

Dependency issues and "blank screens" Appium

Operating System: MacOS

Issue: I cd'd into my "applications/appium/contents/.../app" directory and npm installed test-ai-classifier. After trying to start up appium, it resulted in an error "cannot find module prop-types". I then had to install prop-types. Appium crashed again warning that it could not find module uuid. This happened again for the lodash, bluebird, xpath, appium-support, request-promise, moment packages. After Appium finally didn't crash on startup because of missing modules, it started up and the screen was blank. I wait a while and nothing ever appears.
Screen Shot 2019-05-23 at 4 16 46 PM

Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {element-6066-11e4-a52e-4f735466cecf=07fd6306-4740-419e-8d1b-0f38d745ba01, rect={x=1075, y=651, width=2, height=550}}

Problem
Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {element-6066-11e4-a52e-4f735466cecf=07fd6306-4740-419e-8d1b-0f38d745ba01, rect={x=1075, y=651, width=2, height=550}}
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z'
System info: host: 'QPaaSs-Mac-mini.local', ip: '192.168.43.193', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.6', java.version: '11.0.1'
Driver info: driver.version: AndroidDriver
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:324)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:62)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.findElement(AndroidDriver.java:1)
at scr.main(scr.java:44)
Caused by: java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class org.openqa.selenium.WebElement (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; org.openqa.selenium.WebElement is in unnamed module of loader 'app')
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322)
... 4 more

Environment
Appium :1.9.2 beta.2
Java client :5.0.4
Selenium server standalone :3.12.0

Details:
We are able to find the elements but we are unable to interact with element like click and sendkeys etc., and also While using java-client 6.0 and above it had issues while hitting the server. We are trying Test.AI which requires us to use the latest version.

Appium Logs:
[Appium] Welcome to Appium v1.9.2-beta.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> POST /wd/hub/session
[HTTP] {"desiredCapabilities":{"appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformName":"Android","platformVersion":"8.0","shouldUseCompactResponses":false},"capabilities":{"desiredCapabilities":{"appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformName":"Android","platformVersion":"8.0","shouldUseCompactResponses":false},"firstMatch":[{"platformName":"android"}]}}
[debug] [W3C] Calling AppiumDriver.createSession() with args: [{"appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformName":"Android","platformVersion":"8.0","shouldUseCompactResponses":false},null,{"desiredCapabilities":{"appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformName":"Android","platformVersion":"8.0","shouldUseCompactResponses":false},"firstMatch":[{"platformName":"android"}]}]
[debug] [BaseDriver] Event 'newSessionRequested' logged at 1549524662717 (13:01:02 GMT+0530 (India Standard Time))
[Appium] Could not parse W3C capabilities: 'deviceName' can't be blank
[Appium] Trying to fix W3C capabilities by merging them with JSONWP caps
[BaseDriver] The capabilities ["appActivity","appPackage","automationName","customFindModules","deviceName","noReset","platformVersion","shouldUseCompactResponses"] are not standard capabilities and should have an extension prefix
[Appium] Creating new AndroidUiautomator2Driver (v1.22.0) session
[Appium] Capabilities:
[Appium] appActivity: com.flipkart.android.SplashActivity
[Appium] appPackage: com.flipkart.android
[Appium] automationName: uiautomator2
[Appium] customFindModules: {
[Appium] ai: test-ai-classifier
[Appium] }
[Appium] deviceName: Nexus 5X
[Appium] noReset: true
[Appium] platformVersion: 8.0
[Appium] shouldUseCompactResponses: false
[Appium] platformName: android
[debug] [BaseDriver] W3C capabilities {"alwaysMatch":{"appium:app... and MJSONWP desired capabilities {"appActivity":"com.flipkar... were provided
[debug] [BaseDriver] Creating session with W3C capabilities: {"alwaysMatch":{"appium:app...
[BaseDriver] The following capabilities were provided, but are not recognized by appium: customFindModules, shouldUseCompactResponses.
[BaseDriver] Session created with session id: 223b1a7b-5963-4512-99fd-8029f858f3db
(node:2026) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[AndroidDriver] Java version is: 11.0.1
[ADB] Checking whether adb is present
[ADB] Found 1 'build-tools' folders under '/Users/qpaas/Library/Android/sdk' (newest first):
[ADB] /Users/qpaas/Library/Android/sdk/build-tools/28.0.3
[ADB] Using adb from /Users/qpaas/Library/Android/sdk/platform-tools/adb
[AndroidDriver] Retrieving device list
[debug] [ADB] Trying to find a connected android device
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[AndroidDriver] Looking for a device with Android '8.0'
[debug] [ADB] Setting device id to 00d1d0c9b25515e5
[ADB] Getting device platform version
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell getprop ro.build.version.release'
[debug] [ADB] Current device property 'ro.build.version.release': 8.0.0
[AndroidDriver] Using device: 00d1d0c9b25515e5
[debug] [ADB] Setting device id to 00d1d0c9b25515e5
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell getprop ro.build.version.sdk'
[debug] [ADB] Current device property 'ro.build.version.sdk': 26
[debug] [ADB] Device API level: 26
[AndroidDriver] No app sent in, not parsing package/activity
[debug] [ADB] Getting all processes with uiautomator
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell ps'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell am force-stop io.appium.uiautomator2.server'
[debug] [ADB] Checking app cert for /Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v2.3.0.apk
[ADB] Using apksigner from /Users/qpaas/Library/Android/sdk/build-tools/28.0.3/apksigner
[debug] [ADB] Starting '/Users/qpaas/Library/Android/sdk/build-tools/28.0.3/apksigner' with args '["verify","--print-certs","/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v2.3.0.apk"]'
[debug] [ADB] apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] [ADB] Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] [ADB] Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] [ADB] Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] [ADB]
[debug] [ADB] '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v2.3.0.apk' is already signed.
[debug] [ADB] Checking app cert for /Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk
[debug] [ADB] Starting '/Users/qpaas/Library/Android/sdk/build-tools/28.0.3/apksigner' with args '["verify","--print-certs","/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk"]'
[debug] [ADB] apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] [ADB] Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] [ADB] Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] [ADB] Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] [ADB]
[debug] [ADB] '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' is already signed.
[debug] [ADB] Getting install status for io.appium.uiautomator2.server
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.uiautomator2.server'
[debug] [ADB] 'io.appium.uiautomator2.server' is installed
[debug] [ADB] Getting package info for 'io.appium.uiautomator2.server'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.uiautomator2.server'
[ADB] Checking whether aapt is present
[ADB] Using aapt from /Users/qpaas/Library/Android/sdk/build-tools/28.0.3/aapt
[debug] [ADB] The installed 'io.appium.uiautomator2.server' package does not require upgrade ('2.3.0' >= '2.3.0')
[debug] [ADB] Getting install status for io.appium.uiautomator2.server.test
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.uiautomator2.server.test'
[debug] [ADB] 'io.appium.uiautomator2.server.test' is installed
[debug] [ADB] Getting package info for 'io.appium.uiautomator2.server.test'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.uiautomator2.server.test'
[ADB] Cannot read version codes of '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' and/or 'io.appium.uiautomator2.server.test'
[ADB] Cannot read version names of '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' and/or 'io.appium.uiautomator2.server.test'. Assuming correct app version is already installed
[debug] [UiAutomator2] Waiting up to 20000ms for instrumentation 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' to be available
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell pm list instrumentation'
[debug] [UiAutomator2] Instrumentation 'io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner' available
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 wait-for-device'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell echo ping'
[debug] [AndroidDriver] Pushing settings apk to device...
[debug] [ADB] Getting install status for io.appium.settings
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.settings'
[debug] [ADB] 'io.appium.settings' is installed
[debug] [ADB] Getting package info for 'io.appium.settings'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys package io.appium.settings'
[debug] [ADB] The installed 'io.appium.settings' package does not require upgrade (17 > 10)
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell ps'
[debug] [AndroidDriver] io.appium.settings is already running. There is no need to reset its permissions.
[debug] [ADB] Device API level: 26
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell appops set io.appium.settings android:mock_location allow'
[AndroidDriver] setDeviceLanguageCountry requires language or country.
[AndroidDriver] Got language: 'null' and country: 'null'
[debug] [Logcat] Starting logcat capture
[debug] [UiAutomator2] Forwarding UiAutomator2 Server port 6790 to 8202
[debug] [ADB] Forwarding system: 8202 to device: 6790
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 forward tcp:8202 tcp:6790'
[debug] [UiAutomator2] No app capability. Assuming it is already on the device
[debug] [ADB] Checking app cert for null
[debug] [ADB] 'null' does not exist
[debug] [ADB] Getting all processes with uiautomator
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell ps'
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell am force-stop io.appium.uiautomator2.server'
[UiAutomator2] Starting uiautomator2 server 2.3.0
[UiAutomator2] Using UIAutomator2 server from '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v2.3.0.apk' and test from '/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk'
[UiAutomator2] Running command: 'adb -s 00d1d0c9b25515e5 shell am instrument -w io.appium.uiautomator2.server.test/android.support.test.runner.AndroidJUnitRunner'
[UiAutomator2] Waiting up to 20000ms for UiAutomator2 to be online...
[debug] [JSONWP Proxy] Matched '/status' to command name 'getStatus'
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8202/wd/hub/status] with no body
[JSONWP Proxy] Got an unexpected response: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}
[debug] [JSONWP Proxy] Matched '/status' to command name 'getStatus'
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8202/wd/hub/status] with no body
[JSONWP Proxy] Got an unexpected response: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}
[debug] [JSONWP Proxy] Matched '/status' to command name 'getStatus'
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8202/wd/hub/status] with no body
[JSONWP Proxy] Got an unexpected response: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}
[debug] [JSONWP Proxy] Matched '/status' to command name 'getStatus'
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8202/wd/hub/status] with no body
[JSONWP Proxy] Got an unexpected response: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}
[debug] [JSONWP Proxy] Matched '/status' to command name 'getStatus'
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8202/wd/hub/status] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"SESSIONID","status":0,"value":"Status Invoked"}"
[debug] [JSONWP Proxy] Matched '/session' to command name 'createSession'
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8202/wd/hub/session] with body: {"desiredCapabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformVersion":"8.0","shouldUseCompactResponses":false},"platformName":"android","appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"00d1d0c9b25515e5","noReset":true,"platformVersion":"8.0","shouldUseCompactResponses":false,"deviceUDID":"00d1d0c9b25515e5"}}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":"Created Session"}
[debug] [JSONWP Proxy] Proxying [GET /appium/device/info] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/device/info] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":{"androidId":"1c526fb2f4e5b889","manufacturer":"LGE","model":"Nexus 5X","brand":"google","apiVersion":"26","platformVersion":"8.0.0","carrierName":"","realDisplaySize":"1080x1920","displayDensity":500}}"
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell dumpsys window'
[AndroidDriver] Screen already unlocked, doing nothing
[UiAutomator2] UiAutomator2 did not start the activity we were waiting for, 'com.flipkart.android/com.flipkart.android.SplashActivity'. Starting it ourselves
[debug] [ADB] Device API level: 26
[debug] [ADB] Running '/Users/qpaas/Library/Android/sdk/platform-tools/adb -P 5037 -s 00d1d0c9b25515e5 shell am start -W -n com.flipkart.android/com.flipkart.android.SplashActivity -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000'
[debug] [JSONWP Proxy] Proxying [GET /appium/device/pixel_ratio] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/device/pixel_ratio] with body: {}
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":3.125}"
[debug] [JSONWP Proxy] Matched '/appium/device/system_bars' to command name 'getSystemBars'
[debug] [JSONWP Proxy] Proxying [GET /appium/device/system_bars] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/device/system_bars] with body: {}
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":{"statusBar":75}}"
[debug] [JSONWP Proxy] Matched '/window/current/size' to command name 'getWindowSize'
[debug] [JSONWP Proxy] Proxying [GET /window/current/size] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/window/current/size] with body: {}
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":{"height":1770,"width":1080}}"
[Appium] New AndroidUiautomator2Driver session created successfully, session 223b1a7b-5963-4512-99fd-8029f858f3db added to master session list
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1549524673896 (13:01:13 GMT+0530 (India Standard Time))
[debug] [W3C (223b1a7b)] Cached the protocol value 'W3C' for the new session 223b1a7b-5963-4512-99fd-8029f858f3db
[debug] [W3C (223b1a7b)] Responding to client with driver.createSession() result: {"capabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"Nexus 5X","noReset":true,"platformVersion":"8.0","shouldUseCompactResponses":false},"platformName":"android","appActivity":"com.flipkart.android.SplashActivity","appPackage":"com.flipkart.android","automationName":"uiautomator2","customFindModules":{"ai":"test-ai-classifier"},"deviceName":"00d1d0c9b25515e5","noReset":true,"platformVersion":"8.0.0","shouldUseCompactResponses":false,"deviceUDID":"00d1d0c9b25515e5","deviceApiLevel":26,"deviceScreenSize":"1080x1920","deviceScreenDensity":500,"deviceModel":"Nexus 5X","deviceManufacturer":"LGE","pixelRatio":3.125,"statBarHeight":75,"viewport...
[HTTP] <-- POST /wd/hub/session 200 11191 ms - 1136
[HTTP]
[HTTP] --> POST /wd/hub/session/223b1a7b-5963-4512-99fd-8029f858f3db/element
[HTTP] {"value":"ai:search","using":"-custom"}
[debug] [W3C (223b1a7b)] Calling AppiumDriver.findElement() with args: ["-custom","ai:search","223b1a7b-5963-4512-99fd-8029f858f3db"]
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Retrieving current settings to check element response attributes
[debug] [JSONWP Proxy] Matched '/appium/settings' to command name 'getSettings'
[debug] [JSONWP Proxy] Proxying [GET /appium/settings] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/settings] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":{"actionAcknowledgmentTimeout":3000,"allowInvisibleElements":false,"ignoreUnimportantViews":false,"elementResponseAttributes":"","enableNotificationListener":true,"keyInjectionDelay":0,"scrollAcknowledgmentTimeout":200,"shouldUseCompactResponses":false,"waitForIdleTimeout":10000,"waitForSelectorTimeout":10000,"shutdownOnPowerDisconnect":true}}"
[ai] We will need to update settings to include element response attributes
[UiAutomator2] Forwarding the following settings to the UiAutomator2 server: ["elementResponseAttributes"]
[debug] [JSONWP Proxy] Matched '/appium/settings' to command name 'updateSettings'
[debug] [JSONWP Proxy] Proxying [POST /appium/settings] to [POST http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/settings] with body: {"settings":{"elementResponseAttributes":"rect"}}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":true}
[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [JSONWP Proxy] Matched '/elements' to command name 'findElements'
[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/elements] with body: {"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":[{"ELEMENT":"bb643421-ffbb-4b2d-ada7-68f739293d05","rect":{"x":0,"y":75,"width":175,"height":175}},{"ELEMENT":"06437aea-240e-4b32-ad48-19794707265f","rect":{"x":175,"y":75,"width":216,"height":175}},{"ELEMENT":"60c53f58-8081-4495-badf-7764d0850d71","rect":{"x":844,"y":137,"width":47,"height":50}},{"ELEMENT":"599a4ac9-879b-4528-946f-779ff35db697","rect":{"x":969,"y":139,"width":47,"height":47}},{"ELEMENT":"a0dccffd-db40-405f-952f-ff301a023e17","rect":{"x":41,"y":275,"width":998,"height":125}},{"ELEMENT":"8039972c-a5de-4917-bb50-a2fe4b9432ad","rect":{"x":0,"y":425,"width":206,"height":195}},{"ELEMENT":"1938d745-662d-4eb4-8d74-52a9629016ee","rect":{"x":206,"y":425,"width":206,"height":195}},{"ELEMENT":"8acd1201-d9d9-442c-ab62-9bd5b6cfca61","rect":{"x":412,"y":425,"width":206,"height":195}},{"ELEMENT":"fa4deeb2-c7f0-49bf-bd4f-08ece21e3377","rect":{"x":618,"y":425,"width":206,"height":195}},{"ELEMENT":"506c4d08-2404-4774-896d-ca22b8597bfa","...
[ai] Getting window size in case we need to scale screenshot
[ai] Getting screenshot to use for classifier
[debug] [JSONWP Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [JSONWP Proxy] Proxying [GET /screenshot] to [GET http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/screenshot] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":"iVBORw0KGgoAAAANSUhEUgAABDgAAAeACAIAAACkA3BdAAAAA3NCSVQICAjb4U\/gAAAgAElEQVR4\nnOzdd3xc1Zk\/\/uecW6fPqFuy5SL3XpAN2Biw6d2k0EPCEkglG7JfCKT9drOBkB+b7KZ\/SVgCJKGE\ngOnVdNsYN9yNjdxky7a6NPW2c75\/jC1rZu6M2jTZz\/vFH4BGc+8djUbnc895nkMmf68NEEIIIYQQ\nQqiY0EKfAEIIIYQQQgglw6CCEEIIIYQQKjoYVBBCCCGEEEJFB4MKQgghhBBCqOhgUEEIIYQQQggV\nHQwqCCGEEEIIoaKDQQUhhBBCCCFUdDCoIIQQQgghhIoOBhWEEEIIIYRQ0cGgghBCCCGEECo6YqFP\nIBklUB2g8+uki2fLs2pFRSICBUKOfZUxYByCUbb6M\/OVjdrmA1Z7mAEA54U8Z4QQQgghhFB2kcnf\nayv0OQAAUAIlbvp\/LnOcO012yoQeTyY9EaW3eCyJZ5OOMPvbSu2vH8RCGse4ghBCCCGE0Mmh8EGF\nEJg+UvzF9a5RpQIhQO2SSWacA+PwyX7zjkeD7SEMKwghhBBCCA17hQwqhMCYMuHBG12Tq8VB5JMk\nnIPJ4MyfdIRiwyOrUAKqTEQKonDif3IOpgWGBTFjeFwFQgghhBBCuVCwGhWBwncvdn5psSpS+\/Vd\nA0UICBSWTJNeWK9n4elyRhTAoxKHTLwOMmeMOMIvlHlOXL\/F4HAnO9hubdpvaQYP6zwc46z4Mgsh\nUO6hIwL00yZLM3HRHUIIFdiyeqU6QINR\/tgHsUKfS9\/q68SagFBTktDR51A7O9RhrW0wC3VWQ1RX\nKZS6k3sUtYVYw1GrIOdzqnngOveEKqHvxwHsPmLd\/UQo...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Getting screenshot slices for each element
[ai] Making label predictions based on element images
[ai] Predictions for 19 element(s) took 2.797 seconds
[ai] Found 0 matching elements
[ai] Resetting element response attribute setting to original value: ""
[UiAutomator2] Forwarding the following settings to the UiAutomator2 server: ["elementResponseAttributes"]
[debug] [JSONWP Proxy] Matched '/appium/settings' to command name 'updateSettings'
[debug] [JSONWP Proxy] Proxying [POST /appium/settings] to [POST http://localhost:8202/wd/hub/session/f9e4060b-3d40-477d-9bc9-f00b87a48000/appium/settings] with body: {"settings":{"elementResponseAttributes":""}}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"f9e4060b-3d40-477d-9bc9-f00b87a48000","status":0,"value":true}
[debug] [W3C (223b1a7b)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [W3C (223b1a7b)] at AndroidUiautomator2Driver. (/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/appium-base-driver/lib/basedriver/commands/find.js:172:13)
[debug] [W3C (223b1a7b)] at Generator.throw ()
[debug] [W3C (223b1a7b)] at asyncGeneratorStep (/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[debug] [W3C (223b1a7b)] at _throw (/Users/qpaas/Downloads/appium-1.9.2-beta.2/node_modules/@babel/runtime/helpers/asyncToGenerator.js:29:9)
[HTTP] <-- POST /wd/hub/session/223b1a7b-5963-4512-99fd-8029f858f3db/element 404 10924 ms - 696
[HTTP]

Code To Reproduce Issue [ Good To Have ]
import java.net.*;
import java.util.HashMap;

import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.*;
import io.appium.java_client.android.AndroidDriver;

public class scr {

@SuppressWarnings("rawtypes")
public static AppiumDriver driver;

@SuppressWarnings("rawtypes")
public static void main(String[] args) throws MalformedURLException, InterruptedException{
	// TODO Auto-generated method stub
	DesiredCapabilities capability=new DesiredCapabilities();
	capability.setCapability("platformName","Android");
	capability.setCapability("platformVersion","8.0");
	capability.setCapability("automationName", "uiautomator2");
	capability.setCapability("deviceName","Nexus 5X");
	capability.setCapability("noReset",true);
	capability.setCapability("appPackage","com.flipkart.android");
	capability.setCapability("appActivity","com.flipkart.android.SplashActivity");
	HashMap<String, String> customFindModules = new HashMap<>();
      customFindModules.put("ai", "test-ai-classifier");
      capability.setCapability("customFindModules", customFindModules);
      capability.setCapability("shouldUseCompactResponses", false); 
	 driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capability);
	 driver.findElement("-custom","ai:search").sendKeys("123");
	 driver.quit();
}

}

Performance and flexibility improvement by Single Shot MultiBox Detector

I understand the current implementation retrieves all "//*[not(child::*)]" elements (which means all elements without children?) by XPath and predicts each category of the element image in parallel.
I think this approach is very simple and stable, but we can improve this logic more by using SSD(Single Shot MultiBox Detector). SSD detects multiple object classes and locations in an image at one time (like this).

I'm afraid the current implementation cannot recognize object which does not have the corresponding Appium element.
On the other hand, SSD model can detect any object in an image even if the object does not have the corresponding Appium element. This is quite useful for Unity app, WebView without permission etc, which Appium often cannot handle well.

I found tensorFlowJS has SSD sample model, and I think this can be used to this AI locator.

The problems which we should overcome are:

  • Precision: Actually I'm doing the same thing as this locator by SSD in our commercial test tool, but achieving good precision by SSD is sometimes more difficult than simple image classification CNN model such as MobileNet, which is used by this project.
  • Prediction time: SSD scan for the whole image takes 0.1-0.3 sec with GPU and 3-5 sec with CPU currently. Sometimes this can be faster than all bottommost elements iteration by xpath, but sometimes can be slower.
  • If result of SSD AI locator should be exactly the same element as usual Appium element, we need to identify the corresponding Apipum element for the x/y/w/h region calculated by SSD. If so, providing elementForPosition by Appium is the best approach (although it may be as slow as xpath all element iteration). But I wonder if such approach is really necessary. AI locator can be useful in the situation which Appium cannot find the good element, and for such situation, no corresponding Appium element can be retrieved even with elementForPosition method.

I think this is the next step for this locator to become the true AI locator which behaves exactly the same as the human and does not require any system information and permission just like the human tester.

I'd like to know what do you think about this improvement.

node: symbol lookup error: /usr/local/lib/node_modules/test-ai-classifier/build/Release/test-ai-classifier.node: undefined symbol: TF_Version

Hi @jlipps,
I'm getting following errors when running my test script written in python for mobile app automation using test-ai-classifier as a customrFindModule in appium. However, my test script run fine it just break where i'm using test-ai-classifier and also it terminate my appium server after following errors.

Error logs in Appium Server
node-pre-gyp info This Node instance does not support builds for N-API version 4
node-pre-gyp info This Node instance does not support builds for N-API version 5
node-pre-gyp info This Node instance does not support builds for N-API version 4
node-pre-gyp info This Node instance does not support builds for N-API version 5
2020-02-16 14:08:08.238080: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-02-16 14:08:08.274034: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2299965000 Hz
2020-02-16 14:08:08.274316: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x454f530 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-02-16 14:08:08.274337: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
node: symbol lookup error: /usr/local/lib/node_modules/test-ai-classifier/build/Release/test-ai-classifier.node: undefined symbol: TF_Version

System Info:
OS: Ubuntu 18.04.4
OS Type: 64-bit
Processor: Intel® Core™ i5-6300HQ CPU @ 2.30GHz × 4
Graphics: Intel® HD Graphics 530 (Skylake GT2)
GNOME: 3.28.2

Node version: v10.15.0
NPM version: 6.13.7
Appium version: 1.16.0
TensorFlow: TensorFlow: @tensorflow/[email protected] (from /../../node_modules/test-ai-classifier/node_modules/@tensorflow/tfjs/package.json)

So, how I can solve these issues?

Thanks in advance!

Questions - Please could you clarify these questions

Please could you clarify these questions.

Q1- Is the ML model open source for me to train and predict the custome images for my application(s)?

Q2- I hope this also supports selenium browser testing. Please confirm.

It can take more than 20 seconds to find only one element. How to make it quicker?

The plugin works!
However, what makes me surprised is that the plugin needs spend more than 20 seconds finding only one element in the screen by executing the following only ONE line code according to my test:
driver.find_element_by_custom("ai:search").click()

I believe many people would argue that wheter we can really use it in the real test environment, especially when we need to qickly obtain the correct test result. So, how to make it quicker?

org.openqa.selenium.WebDriverException:Original error: Invalid format for the 'customFindModules' capability. It should be an object with keys corresponding to the short names and values corresponding to the full names of the element finding plugins

Could you please take a look at the code and let me know what is wrong here.

PFB the images attached
Capabilty use image
Capability Image

Appium Log:
info] �[35m[Appium]�[39m Welcome to Appium v1.17.1
[info] �[35m[Appium]�[39m Non-default server args:
[info] �[35m[Appium]�[39m allowInsecure: {
[info] �[35m[Appium]�[39m }
[info] �[35m[Appium]�[39m denyInsecure: {
[info] �[35m[Appium]�[39m }
[info] �[35m[Appium]�[39m Appium REST http interface listener started on 0.0.0.0:4723[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session�[39m
[info] �[35m[HTTP]�[39m �[90m{"desiredCapabilities":{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceName":"emulator-5554","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","customFindModules":"{"ai":"test-ai-classifier"}","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"emulator-5554","platformName":"Android","systemPort":8208}}�[39m
[debug] �[35m[MJSONWP]�[39m Calling AppiumDriver.createSession() with args: [{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceName":"emulator-5554","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","customFindModules":"{"ai":"test-ai-classifier"}","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"emulator-5554","platformName":"Android","systemPort":8208},null,null]
[debug] �[35m[BaseDriver]�[39m Event 'newSessionRequested' logged at 1603462399296 (19:43:19 GMT+0530 (India Standard Time))
[info] �[35m[Appium]�[39m Appium v1.17.1 creating new AndroidUiautomator2Driver (v1.44.2) session
[debug] �[35m[BaseDriver]�[39m Creating session with MJSONWP desired capabilities: {
[debug] �[35m[BaseDriver]�[39m "app": "/Users/aspiremac41/Desktop/TestAI/Flipkart.apk",
[debug] �[35m[BaseDriver]�[39m "appPackage": "com.flipkart.android",
[debug] �[35m[BaseDriver]�[39m "noReset": false,
[debug] �[35m[BaseDriver]�[39m "shouldUseCompactResponses": false,
[debug] �[35m[BaseDriver]�[39m "uiautomator2ServerLaunchTimeout": 60000,
[debug] �[35m[BaseDriver]�[39m "fullReset": false,
[debug] �[35m[BaseDriver]�[39m "deviceName": "emulator-5554",
[debug] �[35m[BaseDriver]�[39m "appActivity": "com.flipkart.android.activity.HomeFragmentHolderActivity",
[debug] �[35m[BaseDriver]�[39m "androidInstallTimeout": 180000,
[debug] �[35m[BaseDriver]�[39m "newCommandTimeout": 240,
[debug] �[35m[BaseDriver]�[39m "adbExecTimeout": 180000,
[debug] �[35m[BaseDriver]�[39m "platformVersion": "9",
[debug] �[35m[BaseDriver]�[39m "customFindModules": "{"ai":"test-ai-classifier"}",
[debug] �[35m[BaseDriver]�[39m "automationName": "uiautomator2",
[debug] �[35m[BaseDriver]�[39m "autoGrantPermissions": true,
[debug] �[35m[BaseDriver]�[39m "unicodeKeyboard": true,
[debug] �[35m[BaseDriver]�[39m "udid": "emulator-5554",
[debug] �[35m[BaseDriver]�[39m "platformName": "Android",
[debug] �[35m[BaseDriver]�[39m "systemPort": 8208
[debug] �[35m[BaseDriver]�[39m }
[warn] �[35m[BaseDriver]�[39m The following capabilities were provided, but are not recognized by Appium:
[warn] �[35m[BaseDriver]�[39m shouldUseCompactResponses
[warn] �[35m[BaseDriver]�[39m customFindModules
[info] �[35m[BaseDriver]�[39m Session created with session id: b0b9a582-7120-4736-816d-48477c9ca24c[info] �[35m[BaseDriver]�[39m Using local app '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk'
[debug] �[35m[UiAutomator2]�[39m Checking whether app is actually present
[info] �[35m[ADB]�[39m Found 2 'build-tools' folders under '/Users/aspiremac41/Library/Android/sdk' (newest first):
[info] �[35m[ADB]�[39m /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2
[info] �[35m[ADB]�[39m /Users/aspiremac41/Library/Android/sdk/build-tools/29.0.3
[info] �[35m[ADB]�[39m Using 'adb' from '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb'
[info] �[35m[AndroidDriver]�[39m Retrieving device list
[debug] �[35m[ADB]�[39m Trying to find a connected android device
[debug] �[35m[ADB]�[39m Getting connected devices...
[debug] �[35m[ADB]�[39m Connected devices: [{"udid":"emulator-5554","state":"device"}]
[info] �[35m[AndroidDriver]�[39m Using device: emulator-5554
[info] �[35m[ADB]�[39m Using 'adb' from '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb'
[debug] �[35m[ADB]�[39m Setting device id to emulator-5554
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell getprop ro.build.version.sdk'
[debug] �[35m[ADB]�[39m Current device property 'ro.build.version.sdk': 28
[info] �[35m[ADB]�[39m Getting device platform version
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell getprop ro.build.version.release'
[debug] �[35m[ADB]�[39m Current device property 'ro.build.version.release': 9
[debug] �[35m[ADB]�[39m Device API level: 28
[warn] �[35m[UiAutomator2]�[39m Relaxing hidden api policy
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy_pre_p_apps 1'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy_p_apps 1'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy 1'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 wait-for-device'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell echo ping'
[debug] �[35m[AndroidDriver]�[39m Pushing settings apk to device...
[debug] �[35m[ADB]�[39m Getting install status for io.appium.settings
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.settings'[debug] �[35m[ADB]�[39m 'io.appium.settings' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'io.appium.settings'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.settings'
[debug] �[35m[ADB]�[39m The version name of the installed 'io.appium.settings' is greater or equal to the application version name ('3.1.0' >= '3.1.0')
[debug] �[35m[ADB]�[39m There is no need to install/upgrade '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/io.appium.settings/apks/settings_apk-debug.apk'
[debug] �[35m[ADB]�[39m Getting IDs of all 'io.appium.settings' processes
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'pgrep --help; echo $?''
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pgrep -f io\.appium\.settings'
[debug] �[35m[AndroidDriver]�[39m io.appium.settings is already running. There is no need to reset its permissions.
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell appops set io.appium.settings android:mock_location allow'
[debug] �[35m[Logcat]�[39m Starting logcat capture
[debug] �[35m[AndroidDriver]�[39m Enabling Unicode keyboard support
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings get secure default_input_method'
[debug] �[35m[AndroidDriver]�[39m Unsetting previous IME io.appium.settings/.UnicodeIME
[debug] �[35m[AndroidDriver]�[39m Setting IME to 'io.appium.settings/.UnicodeIME'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell ime enable io.appium.settings/.UnicodeIME'[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell ime set io.appium.settings/.UnicodeIME'
[debug] �[35m[UiAutomator2]�[39m Forwarding UiAutomator2 Server port 6790 to 8208
[debug] �[35m[ADB]�[39m Forwarding system: 8208 to device: 6790
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward tcp:8208 tcp:6790'
[debug] �[35m[ADB]�[39m Getting install status for io.appium.uiautomator2.server
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m 'io.appium.uiautomator2.server' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m The version name of the installed 'io.appium.uiautomator2.server' is greater or equal to the application version name ('4.5.5' >= '4.5.5')
[debug] �[35m[UiAutomator2]�[39m io.appium.uiautomator2.server installation state: sameVersionInstalled
[debug] �[35m[ADB]�[39m Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk
[info] �[35m[ADB]�[39m Using 'apksigner.jar' from '/Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar'
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk' is signed with the default certificate
[debug] �[35m[ADB]�[39m Getting install status for io.appium.uiautomator2.server.test
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server.test'
[debug] �[35m[ADB]�[39m 'io.appium.uiautomator2.server.test' is installed
[debug] �[35m[ADB]�[39m Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' is signed with the default certificate
[info] �[35m[UiAutomator2]�[39m Server packages are not going to be (re)installed
[debug] �[35m[UiAutomator2]�[39m Waiting up to 30000ms for services to be available
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm list instrumentation'[debug] �[35m[UiAutomator2]�[39m Instrumentation target 'io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner' is available
[debug] �[35m[ADB]�[39m Checking app cert for /Users/aspiremac41/Desktop/TestAI/Flipkart.apk
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Users/aspiremac41/Desktop/TestAI/Flipkart.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk' is signed with the default certificate
[debug] �[35m[ADB]�[39m Getting install status for com.flipkart.android
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'[debug] �[35m[ADB]�[39m 'com.flipkart.android' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'
[debug] �[35m[ADB]�[39m The version name of the installed 'com.flipkart.android' is greater or equal to the application version name ('6.16.0' >= '6.16.0')
[debug] �[35m[ADB]�[39m There is no need to install/upgrade '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk'
[info] �[35m[AndroidDriver]�[39m Performing fast reset on 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Getting install status for com.flipkart.android
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'
[debug] �[35m[ADB]�[39m 'com.flipkart.android' is installed
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop com.flipkart.android'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm clear com.flipkart.android'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'[debug] �[35m[ADB]�[39m Retrieving requested permissions
[debug] �[35m[ADB]�[39m Retrieved 31 permission(s) from ["requested"] group(s)
[debug] �[35m[ADB]�[39m Retrieving granted permissions
[debug] �[35m[ADB]�[39m Retrieved 18 permission(s) from ["install","runtime"] group(s)
[debug] �[35m[ADB]�[39m Granting permissions ["android.permission.WRITE_EXTERNAL_STORAGE","android.permission.CAMERA","android.permission.READ_PHONE_STATE","android.permission.ACCESS_COARSE_LOCATION","android.permission.RECORD_AUDIO","android.permission.ACCESS_FINE_LOCATION","android.permission.READ_CONTACTS","android.permission.RECEIVE_SMS","android.permission.READ_SMS","android.permission.GET_ACCOUNTS","android.permission.READ_OWNER_DATA","android.permission.READ_EXTERNAL_STORAGE","android.permission.WRITE_CONTACTS"] to 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Got the following command chunks to execute: [["pm","grant","com.flipkart.android","android.permission.WRITE_EXTERNAL_STORAGE",";","pm","grant","com.flipkart.android","android.permission.CAMERA",";","pm","grant","com.flipkart.android","android.permission.READ_PHONE_STATE",";","pm","grant","com.flipkart.android","android.permission.ACCESS_COARSE_LOCATION",";","pm","grant","com.flipkart.android","android.permission.RECORD_AUDIO",";","pm","grant","com.flipkart.android","android.permission.ACCESS_FINE_LOCATION",";","pm","grant","com.flipkart.android","android.permission.READ_CONTACTS",";","pm","grant","com.flipkart.android","android.permission.RECEIVE_SMS",";","pm","grant","com.flipkart.android","android.permission.READ_SMS",";","pm","grant","com.flipkart.android","android.permission.GET_ACCOUNTS",";","pm","grant","com.flipkart.android","android.permission.READ_OWNER_DATA",";","pm","grant","com.flipkart.android","android.permission.READ_EXTERNAL_STORAGE",";","pm","grant","com.flipkart.android","android.permission.WRITE_CONTACTS",";"]]
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm grant com.flipkart.android android.permission.WRITE_EXTERNAL_STORAGE ; pm grant com.flipkart.android android.permission.CAMERA ; pm grant com.flipkart.android android.permission.READ_PHONE_STATE ; pm grant com.flipkart.android android.permission.ACCESS_COARSE_LOCATION ; pm grant com.flipkart.android android.permission.RECORD_AUDIO ; pm grant com.flipkart.android android.permission.ACCESS_FINE_LOCATION ; pm grant com.flipkart.android android.permission.READ_CONTACTS ; pm grant com.flipkart.android android.permission.RECEIVE_SMS ; pm grant com.flipkart.android android.permission.READ_SMS ; pm grant com.flipkart.android android.permission.GET_ACCOUNTS ; pm grant com.flipkart.android android.permission.READ_OWNER_DATA ; pm grant com.flipkart.android android.permission.READ_EXTERNAL_STORAGE ; pm grant com.flipkart.android android.permission.WRITE_CONTACTS ;'[debug] �[35m[AndroidDriver]�[39m Performed fast reset on the installed 'com.flipkart.android' application (stop and clear)
[debug] �[35m[UiAutomator2]�[39m Performing shallow cleanup of automation leftovers
[debug] �[35m[UiAutomator2]�[39m No obsolete sessions have been detected (Error: socket hang up)
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop io.appium.uiautomator2.server.test'
[info] �[35m[UiAutomator2]�[39m Starting UIAutomator2 server 4.5.5
[info] �[35m[UiAutomator2]�[39m Using UIAutomator2 server from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk' and test from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk'
[info] �[35m[UiAutomator2]�[39m Waiting up to 60000ms for UiAutomator2 to be online...
[debug] �[35m[ADB]�[39m Creating ADB subprocess with args: ["-P",5037,"-s","emulator-5554","shell","am","instrument","-w","io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner"][debug] �[35m[Instrumentation]�[39m io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:
[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body
[info] �[35m[WD Proxy]�[39m Got response with unknown status: {"code":"ECONNRESET"}[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body
[info] �[35m[WD Proxy]�[39m Got response with unknown status: {"code":"ECONNRESET"}[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"None","value":{"ready":true,"message":"UiAutomator2 Server is ready to accept commands"}}
[debug] �[35m[UiAutomator2]�[39m The initialization of the instrumentation process took 3126ms
[debug] �[35m[WD Proxy]�[39m Matched '/session' to command name 'createSession'
[debug] �[35m[WD Proxy]�[39m Proxying [POST /session] to [POST http://127.0.0.1:8208/wd/hub/session] with body: {"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceName":"emulator-5554","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","customFindModules":"{"ai":"test-ai-classifier"}","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"emulator-5554","platformName":"Android","systemPort":8208},"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":600...
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":{"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceName":"emulator-5554","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","customFindModules":"{"ai":"test-ai-classifier"}","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"emulator-5554","platformName":"Android","systemPort":8208},"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage"...
[info] �[35m[WD Proxy]�[39m Determined the downstream protocol as 'W3C'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/info] to [GET http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/appium/device/info] with no body
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":{"androidId":"ef6cad655bc42628","manufacturer":"Google","model":"AOSP on IA Emulator","brand":"google","apiVersion":"28","platformVersion":"9","carrierName":"Android","realDisplaySize":"1080x1920","displayDensity":420,"networks":[{"type":1,"typeName":"WIFI","subtype":0,"subtypeName":"","isConnected":true,"detailedState":"CONNECTED","state":"CONNECTED","extraInfo":null,"isAvailable":true,"isFailover":false,"isRoaming":false,"capabilities":{"transportTypes":"TRANSPORT_WIFI","networkCapabilities":"NET_CAPABILITY_NOT_METERED,NET_CAPABILITY_INTERNET,NET_CAPABILITY_NOT_RESTRICTED,NET_CAPABILITY_TRUSTED,NET_CAPABILITY_NOT_VPN,NET_CAPABILITY_VALIDATED,NET_CAPABILITY_NOT_ROAMING,NET_CAPABILITY_FOREGROUND,NET_CAPABILITY_NOT_CONGESTED,NET_CAPABILITY_NOT_SUSPENDED","linkUpstreamBandwidthKbps":1048576,"linkDownBandwidthKbps":1048576,"signalStrength":-50,"networkSpecifier":null,"SSID":null}},{"type":0,"typeName":"MOBILE","subtype":13,"subtypeName":"LTE","isConn...
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys window'
[info] �[35m[AndroidDriver]�[39m Screen already unlocked, doing nothing
[info] �[35m[UiAutomator2]�[39m Starting 'com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity and waiting for 'com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am start -W -n com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity -S'[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/pixel_ratio] to [GET http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/appium/device/pixel_ratio] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":2.625}
[debug] �[35m[WD Proxy]�[39m Matched '/appium/device/system_bars' to command name 'getSystemBars'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/system_bars] to [GET http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/appium/device/system_bars] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":{"statusBar":63}}
[debug] �[35m[WD Proxy]�[39m Matched '/window/current/size' to command name 'getWindowSize'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /window/current/size] to [GET http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/window/current/size] with body: {}[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":{"height":1794,"width":1080}}
[info] �[35m[Appium]�[39m New AndroidUiautomator2Driver session created successfully, session b0b9a582-7120-4736-816d-48477c9ca24c added to master session list
[debug] �[35m[BaseDriver]�[39m Event 'newSessionStarted' logged at 1603462412585 (19:43:32 GMT+0530 (India Standard Time))
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Cached the protocol value 'MJSONWP' for the new session b0b9a582-7120-4736-816d-48477c9ca24c
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.createSession() result: {"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceName":"emulator-5554","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","customFindModules":"{"ai":"test-ai-classifier"}","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"emulator-5554","platformName":"Android","systemPort":8208},"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"fullReset":false,"deviceNam...
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session �[39m�[32m200�[39m �[90m13294 ms - 1761�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/timeouts�[39m
[info] �[35m[HTTP]�[39m �[90m{"type":"implicit","ms":0}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.timeouts() with args: ["implicit",0,null,null,null,"b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[BaseDriver]�[39m MJSONWP timeout arguments: {"type":"implicit","ms":0}}
[debug] �[35m[BaseDriver]�[39m Set implicit wait to 0ms
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.timeouts() result: null
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/timeouts �[39m�[32m200�[39m �[90m4 ms - 76�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mGET�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/context�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.getCurrentContext() with args: ["b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.getCurrentContext() result: "NATIVE_APP"
[info] �[35m[HTTP]�[39m �[37m<-- GET /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/context �[39m�[32m200�[39m �[90m5 ms - 84�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/elements�[39m
[info] �[35m[HTTP]�[39m �[90m{"using":"id","value":"com.android.packageinstaller:id/permission_allow_button"}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.findElements() with args: ["id","com.android.packageinstaller:id/permission_allow_button","b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[BaseDriver]�[39m Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] �[35m[BaseDriver]�[39m Waiting up to 0 ms for condition
[debug] �[35m[WD Proxy]�[39m Matched '/elements' to command name 'findElements'
[debug] �[35m[WD Proxy]�[39m Proxying [POST /elements] to [POST http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/elements] with body: {"strategy":"id","selector":"com.android.packageinstaller:id/permission_allow_button","context":"","multiple":true}[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":[]}
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.findElements() result: []
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/elements �[39m�[32m200�[39m �[90m270 ms - 74�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mGET�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/context�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.getCurrentContext() with args: ["b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.getCurrentContext() result: "NATIVE_APP"
[info] �[35m[HTTP]�[39m �[37m<-- GET /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/context �[39m�[32m200�[39m �[90m4 ms - 84�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/elements�[39m
[info] �[35m[HTTP]�[39m �[90m{"using":"id","value":"com.android.packageinstaller:id/permission_allow_button"}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.findElements() with args: ["id","com.android.packageinstaller:id/permission_allow_button","b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[BaseDriver]�[39m Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] �[35m[BaseDriver]�[39m Waiting up to 0 ms for condition
[debug] �[35m[WD Proxy]�[39m Matched '/elements' to command name 'findElements'
[debug] �[35m[WD Proxy]�[39m Proxying [POST /elements] to [POST http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/elements] with body: {"strategy":"id","selector":"com.android.packageinstaller:id/permission_allow_button","context":"","multiple":true}[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":[]}
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.findElements() result: []
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/elements �[39m�[32m200�[39m �[90m237 ms - 74�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/timeouts�[39m
[info] �[35m[HTTP]�[39m �[90m{"type":"implicit","ms":1000}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.timeouts() with args: ["implicit",1000,null,null,null,"b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[BaseDriver]�[39m MJSONWP timeout arguments: {"type":"implicit","ms":1000}}
[debug] �[35m[BaseDriver]�[39m Set implicit wait to 1000ms
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.timeouts() result: null
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/timeouts �[39m�[32m200�[39m �[90m4 ms - 76�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/element�[39m
[info] �[35m[HTTP]�[39m �[90m{"using":"-custom","value":"ai:close"}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.findElement() with args: ["-custom","ai:close","b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Encountered internal error running command: Error: Invalid format for the 'customFindModules' capability. It should be an object with keys corresponding to the short names and values corresponding to the full names of the element finding plugins
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AndroidUiautomator2Driver.findByCustom (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:103:11)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AndroidUiautomator2Driver.findElement (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:50:23)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at commandExecutor (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:330:9)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:125:12
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AsyncLock._promiseTry (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:249:31)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at exec (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:124:9)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AsyncLock.acquire (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:140:3)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AndroidUiautomator2Driver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:343:39)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at AppiumDriver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/lib/appium.js:534:36)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at processTicksAndRejections (internal/process/task_queues.js:85:5)
[debug] �[35m[MJSONWP (b0b9a582)]�[39m at asyncHandler (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:309:21)
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/element �[39m�[31m500�[39m �[90m53 ms - 365�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mGET�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/screenshot�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.getScreenshot() with args: ["b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[WD Proxy]�[39m Matched '/screenshot' to command name 'getScreenshot'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /screenshot] to [GET http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a/screenshot] with no body[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":"iVBORw0KGgoAAAANSUhEUgAABDgAAAeACAYAAAArYecKAAAABHNCSVQICAgIfAhkiAAAIABJREFU\neJzs3XecXGXZPvDrOedML9v7bjab3hNSCAkEAgk1VMGAoIJgQfG1oryIvvpTFF99BVSwoAICgoKU\nSOgtJJTQAgkpENK3993ZmZ16zvP7Y7bN7szubN9Jru/ng7I77czszLLPde7nvsXUa/dIEBERERER\nERGlMGW8D4CIiIiIiIiIaLgYcBARERERERFRymPAQUREREREREQpjwEHEREREREREaU8BhxERERE\nRERElPIYcBARERERERFRymPAQUREREREREQpjwEHEREREREREaU8BhxERERERERElPIYcBARERER\nERFRymPAQUREREREREQpTxvvAyBKdaoC5KWbcMYiJ1bNcWJagRmZDhUA0OzTcaA2hC27fXju/TZU\nN0egG3Kcj5iIiIiIiOjoI6Zeu4erLaJBEgKYUWjBL67Ix9xJVqiKgBD930ZKwJASeyqC+PFDNdhx\nOACZwp8+VREoyNSgCKCykcENERERERGNLwYcRINUlGnCppunAsCAoUYincHGrK9/BN0YoQMbI3aL\ngqn5ZlxwfBrWLHBCCOCVD714fGsr9teG4Auk2BMiIiIiognHpAlkOFRkuVRkOjWkO1VkOFS47Qq8\nAQMtXh1NXh3lDWGUN4TAc22D95fripGXlnhTRygiccmvDo/hEQ0ft6jQqMp2a1izwIlFZTYovcIA\nCWD7QT9e3O5FvScyLsc3GFaTwD+vL8WcEuuQg41Onbf/1ZWF+O49VcM/uDGgCGDlLAeuPC0DS6ba\n4LSqXT/TK07JwEUnpGHbfj/+sbkZm3Z6Uy646clqEjhlnhNLptoGfVvDADbt9GL74QD8wRR+EYiI\niIjGkFkTWDHTjpW...
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.getScreenshot() result: "iVBORw0KGgoAAAANSUhEUgAABDgAAAeACAYAAAArYecKAAAABHNCSVQICAgIfAhkiAAAIABJREFU\neJzs3XecXGXZPvDrOedML9v7bjab3hNSCAkEAgk1VMGAoIJgQfG1oryIvvpTFF99BVSwoAICgoKU\nSOgtJJTQAgkpENK3993ZmZ16zvP7Y7bN7szubN9Jru/ng7I77czszLLPde7nvsXUa/dIEBERERER\nERGlMGW8D4CIiIiIiIiIaLgYcBARERERERFRymPAQUREREREREQpjwEHEREREREREaU8BhxERERE\nRERElPIYcBARERERERFRymPAQUREREREREQpjwEHEREREREREaU8BhxERERERERElPIYcBARERER\nERFRymPAQUREREREREQpTxvvAyBKdaoC5KWbcMYiJ1bNcWJagRmZDhUA0OzTcaA2hC27fXju/TZU\nN0egG3Kcj5iIiIiIiOjoI6Zeu4erLaJBEgKYUWjBL67Ix9xJVqiKgBD930ZKwJASeyqC+PFDNdhx\nOACZwp8+VREoyNSgCKCykcENERERERGNLwYcRINUlGnCppunAsCAoUYincHGrK9/BN0YoQMbI3aL\ngqn5ZlxwfBrWLHBCCOCVD714fGsr9teG4Auk2BMiIiIiognHpAlkOFRkuVRkOjWkO1VkOFS47Qq8\nAQMtXh1NXh3lDWGUN4TAc22D95fripGXlnhTRygiccmvDo/hEQ0ft6jQqMp2a1izwIlFZTYovcIA\nCWD7QT9e3O5FvScyLsc3GFaTwD+vL8WcEuuQg41Onbf/1ZWF+O49VcM/uDGgCGDlLAeuPC0DS6ba\n4LSqXT/TK07JwEUnpGHbfj/+sbkZm3Z6Uy646clqEjhlnhNLptoGfVvDADbt9GL74QD8wRR+EYiI\niIjGkFkTWDHTjpWzHFg5y4FZRZak/+YORST21wSxtyqEvZVB7CoPYOvedkR0ph79mVVkQUGGKeHl\noUjqvX...
[info] �[35m[HTTP]�[39m �[37m<-- GET /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c/screenshot �[39m�[32m200�[39m �[90m438 ms - 104516�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mDELETE�[39m �[37m/wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Calling AppiumDriver.deleteSession() with args: ["b0b9a582-7120-4736-816d-48477c9ca24c"]
[debug] �[35m[BaseDriver]�[39m Event 'quitSessionRequested' logged at 1603462429466 (19:43:49 GMT+0530 (India Standard Time))
[info] �[35m[Appium]�[39m Removing session b0b9a582-7120-4736-816d-48477c9ca24c from our master session list
[debug] �[35m[UiAutomator2]�[39m Deleting UiAutomator2 session
[debug] �[35m[UiAutomator2]�[39m Deleting UiAutomator2 server session
[debug] �[35m[WD Proxy]�[39m Matched '/' to command name 'deleteSession'
[debug] �[35m[WD Proxy]�[39m Proxying [DELETE /] to [DELETE http://127.0.0.1:8208/wd/hub/session/b4656f4a-4c2e-41d2-b365-5f95fb63f06a] with no body
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"b4656f4a-4c2e-41d2-b365-5f95fb63f06a","value":null}
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop com.flipkart.android'
[debug] �[35m[Logcat]�[39m Stopping logcat capture
[debug] �[35m[ADB]�[39m Removing forwarded port socket connection: 8208
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward --remove tcp:8208'[info] �[35m[UiAutomator2]�[39m Restoring hidden api policy to the device default configuration
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy_pre_p_apps'
[debug] �[35m[Instrumentation]�[39m .
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy_p_apps'[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy'[debug] �[35m[Instrumentation]�[39m Time: 23.084
[debug] �[35m[Instrumentation]�[39m
[debug] �[35m[Instrumentation]�[39m OK (1 test)
[debug] �[35m[BaseDriver]�[39m Event 'quitSessionFinished' logged at 1603462430754 (19:43:50 GMT+0530 (India Standard Time))
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Received response: null
[debug] �[35m[MJSONWP (b0b9a582)]�[39m But deleting session, so not returning
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Responding to client with driver.deleteSession() result: null
[debug] �[35m[MJSONWP (b0b9a582)]�[39m Destroying socket connection
[info] �[35m[HTTP]�[39m �[37m<-- DELETE /wd/hub/session/b0b9a582-7120-4736-816d-48477c9ca24c �[39m�[32m200�[39m �[90m1290 ms - 76�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[debug] �[35m[Instrumentation]�[39m The process has exited with code 0[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session�[39m
[info] �[35m[HTTP]�[39m �[90m{"desiredCapabilities":{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"deviceName":"emulator-5554","fullReset":false,"appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","automationName":"uiautomator2","customFindModules":"{"ai":"test-ai-classifier"}","autoGrantPermissions":true,"unicodeKeyboard":true,"platformName":"Android","udid":"emulator-5554","systemPort":8208},"capabilities":{"firstMatch":[{"adbExecTimeout":180000,"appium:androidInstallTimeout":180000,"appium:app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appium:appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appium:appPackage":"com.flipkart.android","appium:autoGrantPermissions":true,"appium:automationName":"uiautomator2","customFindModules�[39m
[debug] �[35m[W3C]�[39m Calling AppiumDriver.createSession() with args: [{"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appPackage":"com.flipkart.android","noReset":false,"shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"deviceName":"emulator-5554","fullReset":false,"appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","androidInstallTimeout":180000,"newCommandTimeout":240,"adbExecTimeout":180000,"platformVersion":"9","automationName":"uiautomator2","customFindModules":"{"ai":"test-ai-classifier"}","autoGrantPermissions":true,"unicodeKeyboard":true,"platformName":"Android","udid":"emulator-5554","systemPort":8208},null,{"firstMatch":[{"adbExecTimeout":180000,"appium:androidInstallTimeout":180000,"appium:app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appium:appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appium:appPackage":"com.flipkart.android","appium:autoGrantPermissions":true,"appium:automationName":"uiautomator2","customFindModules":"{"ai":"test-ai-classifier"}","appium:deviceNam...
[debug] �[35m[BaseDriver]�[39m Event 'newSessionRequested' logged at 1603463743536 (20:05:43 GMT+0530 (India Standard Time))
[warn] �[35m[BaseDriver]�[39m The following capabilities are not standard capabilities and should have an extension prefix:
[warn] �[35m[BaseDriver]�[39m adbExecTimeout
[warn] �[35m[BaseDriver]�[39m customFindModules
[warn] �[35m[BaseDriver]�[39m shouldUseCompactResponses
[warn] �[35m[BaseDriver]�[39m uiautomator2ServerLaunchTimeout
[info] �[35m[Appium]�[39m Appium v1.17.1 creating new AndroidUiautomator2Driver (v1.44.2) session
[debug] �[35m[BaseDriver]�[39m W3C capabilities and MJSONWP desired capabilities were provided
[debug] �[35m[BaseDriver]�[39m Creating session with W3C capabilities: {
[debug] �[35m[BaseDriver]�[39m "alwaysMatch": {
[debug] �[35m[BaseDriver]�[39m "appium:adbExecTimeout": 180000,
[debug] �[35m[BaseDriver]�[39m "appium:customFindModules": "{"ai":"test-ai-classifier"}",
[debug] �[35m[BaseDriver]�[39m "platformName": "android",
[debug] �[35m[BaseDriver]�[39m "appium:shouldUseCompactResponses": false,
[debug] �[35m[BaseDriver]�[39m "appium:uiautomator2ServerLaunchTimeout": 60000,
[debug] �[35m[BaseDriver]�[39m "appium:androidInstallTimeout": 180000,
[debug] �[35m[BaseDriver]�[39m "appium:app": "/Users/aspiremac41/Desktop/TestAI/Flipkart.apk",
[debug] �[35m[BaseDriver]�[39m "appium:appActivity": "com.flipkart.android.activity.HomeFragmentHolderActivity",
[debug] �[35m[BaseDriver]�[39m "appium:appPackage": "com.flipkart.android",
[debug] �[35m[BaseDriver]�[39m "appium:autoGrantPermissions": true,
[debug] �[35m[BaseDriver]�[39m "appium:automationName": "uiautomator2",
[debug] �[35m[BaseDriver]�[39m "appium:deviceName": "emulator-5554",
[debug] �[35m[BaseDriver]�[39m "appium:fullReset": false,
[debug] �[35m[BaseDriver]�[39m "appium:newCommandTimeout": 240,
[debug] �[35m[BaseDriver]�[39m "appium:noReset": false,
[debug] �[35m[BaseDriver]�[39m "appium:platformVersion": "9",
[debug] �[35m[BaseDriver]�[39m "appium:systemPort": 8208,
[debug] �[35m[BaseDriver]�[39m "appium:udid": "emulator-5554",
[debug] �[35m[BaseDriver]�[39m "appium:unicodeKeyboard": true
[debug] �[35m[BaseDriver]�[39m },
[debug] �[35m[BaseDriver]�[39m "firstMatch": [
[debug] �[35m[BaseDriver]�[39m {}
[debug] �[35m[BaseDriver]�[39m ]
[debug] �[35m[BaseDriver]�[39m }
[warn] �[35m[BaseDriver]�[39m The following capabilities were provided, but are not recognized by Appium:
[warn] �[35m[BaseDriver]�[39m customFindModules
[warn] �[35m[BaseDriver]�[39m shouldUseCompactResponses
[info] �[35m[BaseDriver]�[39m Session created with session id: f8162ee2-e0de-4f8e-ac18-8feb7c841ead
[info] �[35m[BaseDriver]�[39m Using local app '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk'
[debug] �[35m[UiAutomator2]�[39m Checking whether app is actually present
[info] �[35m[ADB]�[39m Using 'adb' from '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb'
[info] �[35m[AndroidDriver]�[39m Retrieving device list
[debug] �[35m[ADB]�[39m Trying to find a connected android device
[debug] �[35m[ADB]�[39m Getting connected devices...
[debug] �[35m[ADB]�[39m Connected devices: [{"udid":"emulator-5554","state":"device"}]
[info] �[35m[AndroidDriver]�[39m Using device: emulator-5554
[info] �[35m[ADB]�[39m Using 'adb' from '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb'
[debug] �[35m[ADB]�[39m Setting device id to emulator-5554
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell getprop ro.build.version.sdk'
[debug] �[35m[ADB]�[39m Current device property 'ro.build.version.sdk': 28
[info] �[35m[ADB]�[39m Getting device platform version
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell getprop ro.build.version.release'
[debug] �[35m[ADB]�[39m Current device property 'ro.build.version.release': 9
[debug] �[35m[ADB]�[39m Device API level: 28
[warn] �[35m[UiAutomator2]�[39m Relaxing hidden api policy
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy_pre_p_apps 1'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy_p_apps 1'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings put global hidden_api_policy 1'[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 wait-for-device'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell echo ping'
[debug] �[35m[AndroidDriver]�[39m Pushing settings apk to device...
[debug] �[35m[ADB]�[39m Getting install status for io.appium.settings
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.settings'
[debug] �[35m[ADB]�[39m 'io.appium.settings' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'io.appium.settings'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.settings'
[debug] �[35m[ADB]�[39m The version name of the installed 'io.appium.settings' is greater or equal to the application version name ('3.1.0' >= '3.1.0')
[debug] �[35m[ADB]�[39m There is no need to install/upgrade '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/io.appium.settings/apks/settings_apk-debug.apk'
[debug] �[35m[ADB]�[39m Getting IDs of all 'io.appium.settings' processes
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'pgrep --help; echo $?''
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pgrep -f io\.appium\.settings'
[debug] �[35m[AndroidDriver]�[39m io.appium.settings is already running. There is no need to reset its permissions.
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell appops set io.appium.settings android:mock_location allow'
[debug] �[35m[Logcat]�[39m Starting logcat capture
[debug] �[35m[AndroidDriver]�[39m Enabling Unicode keyboard support
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings get secure default_input_method'[debug] �[35m[AndroidDriver]�[39m Unsetting previous IME io.appium.settings/.UnicodeIME
[debug] �[35m[AndroidDriver]�[39m Setting IME to 'io.appium.settings/.UnicodeIME'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell ime enable io.appium.settings/.UnicodeIME'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell ime set io.appium.settings/.UnicodeIME'[debug] �[35m[UiAutomator2]�[39m Forwarding UiAutomator2 Server port 6790 to 8208
[debug] �[35m[ADB]�[39m Forwarding system: 8208 to device: 6790
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward tcp:8208 tcp:6790'
[debug] �[35m[ADB]�[39m Getting install status for io.appium.uiautomator2.server
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m 'io.appium.uiautomator2.server' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server'
[debug] �[35m[ADB]�[39m The version name of the installed 'io.appium.uiautomator2.server' is greater or equal to the application version name ('4.5.5' >= '4.5.5')
[debug] �[35m[UiAutomator2]�[39m io.appium.uiautomator2.server installation state: sameVersionInstalled
[debug] �[35m[ADB]�[39m Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk
[info] �[35m[ADB]�[39m Using 'apksigner.jar' from '/Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar'
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk' is signed with the default certificate
[debug] �[35m[ADB]�[39m Getting install status for io.appium.uiautomator2.server.test
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.uiautomator2.server.test'
[debug] �[35m[ADB]�[39m 'io.appium.uiautomator2.server.test' is installed
[debug] �[35m[ADB]�[39m Checking app cert for /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk' is signed with the default certificate
[info] �[35m[UiAutomator2]�[39m Server packages are not going to be (re)installed
[debug] �[35m[UiAutomator2]�[39m Waiting up to 30000ms for services to be available
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm list instrumentation'
[debug] �[35m[UiAutomator2]�[39m Instrumentation target 'io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner' is available
[debug] �[35m[ADB]�[39m Checking app cert for /Users/aspiremac41/Desktop/TestAI/Flipkart.apk
[debug] �[35m[ADB]�[39m Starting apksigner: /Users/aspiremac41/Library/Java/JavaVirtualMachines/corretto-1.8.0_252/Contents/Home/bin/java -Xmx1024M -Xss1m -jar /Users/aspiremac41/Library/Android/sdk/build-tools/30.0.2/lib/apksigner.jar verify --print-certs /Users/aspiremac41/Desktop/TestAI/Flipkart.apk[debug] �[35m[ADB]�[39m apksigner stdout: Signer #1 certificate DN: EMAILADDRESS=[email protected], CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-256 digest: a40da80a59d170caa950cf15c18c454d47a39b26989d8b640ecd745ba71bf5dc
[debug] �[35m[ADB]�[39m Signer #1 certificate SHA-1 digest: 61ed377e85d386a8dfee6b864bd85b0bfaa5af81
[debug] �[35m[ADB]�[39m Signer #1 certificate MD5 digest: e89b158e4bcf988ebd09eb83f5378e87
[debug] �[35m[ADB]�[39m
[debug] �[35m[ADB]�[39m '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk' is signed with the default certificate
[debug] �[35m[ADB]�[39m Getting install status for com.flipkart.android
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'
[debug] �[35m[ADB]�[39m 'com.flipkart.android' is installed
[debug] �[35m[ADB]�[39m Getting package info for 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'
[debug] �[35m[ADB]�[39m The version name of the installed 'com.flipkart.android' is greater or equal to the application version name ('6.16.0' >= '6.16.0')
[debug] �[35m[ADB]�[39m There is no need to install/upgrade '/Users/aspiremac41/Desktop/TestAI/Flipkart.apk'
[info] �[35m[AndroidDriver]�[39m Performing fast reset on 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Getting install status for com.flipkart.android
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'
[debug] �[35m[ADB]�[39m 'com.flipkart.android' is installed
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop com.flipkart.android'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm clear com.flipkart.android'[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package com.flipkart.android'[debug] �[35m[ADB]�[39m Retrieving requested permissions
[debug] �[35m[ADB]�[39m Retrieved 31 permission(s) from ["requested"] group(s)
[debug] �[35m[ADB]�[39m Retrieving granted permissions
[debug] �[35m[ADB]�[39m Retrieved 18 permission(s) from ["install","runtime"] group(s)
[debug] �[35m[ADB]�[39m Granting permissions ["android.permission.WRITE_EXTERNAL_STORAGE","android.permission.CAMERA","android.permission.READ_PHONE_STATE","android.permission.ACCESS_COARSE_LOCATION","android.permission.RECORD_AUDIO","android.permission.ACCESS_FINE_LOCATION","android.permission.READ_CONTACTS","android.permission.RECEIVE_SMS","android.permission.READ_SMS","android.permission.GET_ACCOUNTS","android.permission.READ_OWNER_DATA","android.permission.READ_EXTERNAL_STORAGE","android.permission.WRITE_CONTACTS"] to 'com.flipkart.android'
[debug] �[35m[ADB]�[39m Got the following command chunks to execute: [["pm","grant","com.flipkart.android","android.permission.WRITE_EXTERNAL_STORAGE",";","pm","grant","com.flipkart.android","android.permission.CAMERA",";","pm","grant","com.flipkart.android","android.permission.READ_PHONE_STATE",";","pm","grant","com.flipkart.android","android.permission.ACCESS_COARSE_LOCATION",";","pm","grant","com.flipkart.android","android.permission.RECORD_AUDIO",";","pm","grant","com.flipkart.android","android.permission.ACCESS_FINE_LOCATION",";","pm","grant","com.flipkart.android","android.permission.READ_CONTACTS",";","pm","grant","com.flipkart.android","android.permission.RECEIVE_SMS",";","pm","grant","com.flipkart.android","android.permission.READ_SMS",";","pm","grant","com.flipkart.android","android.permission.GET_ACCOUNTS",";","pm","grant","com.flipkart.android","android.permission.READ_OWNER_DATA",";","pm","grant","com.flipkart.android","android.permission.READ_EXTERNAL_STORAGE",";","pm","grant","com.flipkart.android","android.permission.WRITE_CONTACTS",";"]]
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm grant com.flipkart.android android.permission.WRITE_EXTERNAL_STORAGE ; pm grant com.flipkart.android android.permission.CAMERA ; pm grant com.flipkart.android android.permission.READ_PHONE_STATE ; pm grant com.flipkart.android android.permission.ACCESS_COARSE_LOCATION ; pm grant com.flipkart.android android.permission.RECORD_AUDIO ; pm grant com.flipkart.android android.permission.ACCESS_FINE_LOCATION ; pm grant com.flipkart.android android.permission.READ_CONTACTS ; pm grant com.flipkart.android android.permission.RECEIVE_SMS ; pm grant com.flipkart.android android.permission.READ_SMS ; pm grant com.flipkart.android android.permission.GET_ACCOUNTS ; pm grant com.flipkart.android android.permission.READ_OWNER_DATA ; pm grant com.flipkart.android android.permission.READ_EXTERNAL_STORAGE ; pm grant com.flipkart.android android.permission.WRITE_CONTACTS ;'[debug] �[35m[AndroidDriver]�[39m Performed fast reset on the installed 'com.flipkart.android' application (stop and clear)
[debug] �[35m[UiAutomator2]�[39m Performing shallow cleanup of automation leftovers
[debug] �[35m[UiAutomator2]�[39m No obsolete sessions have been detected (Error: socket hang up)
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop io.appium.uiautomator2.server.test'
[info] �[35m[UiAutomator2]�[39m Starting UIAutomator2 server 4.5.5
[info] �[35m[UiAutomator2]�[39m Using UIAutomator2 server from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-v4.5.5.apk' and test from '/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-uiautomator2-server/apks/appium-uiautomator2-server-debug-androidTest.apk'
[info] �[35m[UiAutomator2]�[39m Waiting up to 60000ms for UiAutomator2 to be online...
[debug] �[35m[ADB]�[39m Creating ADB subprocess with args: ["-P",5037,"-s","emulator-5554","shell","am","instrument","-w","io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJUnitRunner"][debug] �[35m[Instrumentation]�[39m io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:
[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body
[info] �[35m[WD Proxy]�[39m Got response with unknown status: {"code":"ECONNRESET"}[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body
[info] �[35m[WD Proxy]�[39m Got response with unknown status: {"code":"ECONNRESET"}[debug] �[35m[WD Proxy]�[39m Matched '/status' to command name 'getStatus'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /status] to [GET http://127.0.0.1:8208/wd/hub/status] with no body
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"None","value":{"ready":true,"message":"UiAutomator2 Server is ready to accept commands"}}
[debug] �[35m[UiAutomator2]�[39m The initialization of the instrumentation process took 3126ms
[debug] �[35m[WD Proxy]�[39m Matched '/session' to command name 'createSession'
[debug] �[35m[WD Proxy]�[39m Proxying [POST /session] to [POST http://127.0.0.1:8208/wd/hub/session] with body: {"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appPackage":"com.flipkart.android","autoGrantPermissions":true,"automationName":"uiautomator2","deviceName":"emulator-5554","fullReset":false,"newCommandTimeout":240,"noReset":false,"platformVersion":"9","systemPort":8208,"udid":"emulator-5554","unicodeKeyboard":true},"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"...
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appPackage":"com.flipkart.android","autoGrantPermissions":true,"automationName":"uiautomator2","deviceName":"emulator-5554","fullReset":false,"newCommandTimeout":240,"noReset":false,"platformVersion":"9","systemPort":8208,"udid":"emulator-5554","unicodeKeyboard":true},"platformName":"android","adbExecTimeout":180000,"customFindModules...
[info] �[35m[WD Proxy]�[39m Determined the downstream protocol as 'W3C'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/info] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb/appium/device/info] with no body[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{"androidId":"ef6cad655bc42628","manufacturer":"Google","model":"AOSP on IA Emulator","brand":"google","apiVersion":"28","platformVersion":"9","carrierName":"Android","realDisplaySize":"1080x1920","displayDensity":420,"networks":[{"type":1,"typeName":"WIFI","subtype":0,"subtypeName":"","isConnected":true,"detailedState":"CONNECTED","state":"CONNECTED","extraInfo":null,"isAvailable":true,"isFailover":false,"isRoaming":false,"capabilities":{"transportTypes":"TRANSPORT_WIFI","networkCapabilities":"NET_CAPABILITY_NOT_METERED,NET_CAPABILITY_INTERNET,NET_CAPABILITY_NOT_RESTRICTED,NET_CAPABILITY_TRUSTED,NET_CAPABILITY_NOT_VPN,NET_CAPABILITY_VALIDATED,NET_CAPABILITY_NOT_ROAMING,NET_CAPABILITY_FOREGROUND,NET_CAPABILITY_NOT_CONGESTED,NET_CAPABILITY_NOT_SUSPENDED","linkUpstreamBandwidthKbps":1048576,"linkDownBandwidthKbps":1048576,"signalStrength":-50,"networkSpecifier":null,"SSID":null}},{"type":0,"typeName":"MOBILE","subtype":13,"subtypeName":"LTE","isConn...
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys window'
[info] �[35m[AndroidDriver]�[39m Screen already unlocked, doing nothing
[info] �[35m[UiAutomator2]�[39m Starting 'com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity and waiting for 'com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am start -W -n com.flipkart.android/com.flipkart.android.activity.HomeFragmentHolderActivity -S'[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/pixel_ratio] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb/appium/device/pixel_ratio] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":2.625}
[debug] �[35m[WD Proxy]�[39m Matched '/appium/device/system_bars' to command name 'getSystemBars'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /appium/device/system_bars] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb/appium/device/system_bars] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{"statusBar":63}}
[debug] �[35m[WD Proxy]�[39m Matched '/window/current/size' to command name 'getWindowSize'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /window/current/size] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb/window/current/size] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{"height":1794,"width":1080}}
[info] �[35m[Appium]�[39m New AndroidUiautomator2Driver session created successfully, session f8162ee2-e0de-4f8e-ac18-8feb7c841ead added to master session list
[debug] �[35m[BaseDriver]�[39m Event 'newSessionStarted' logged at 1603463756630 (20:05:56 GMT+0530 (India Standard Time))
[debug] �[35m[W3C (f8162ee2)]�[39m Cached the protocol value 'W3C' for the new session f8162ee2-e0de-4f8e-ac18-8feb7c841ead
[debug] �[35m[W3C (f8162ee2)]�[39m Responding to client with driver.createSession() result: {"capabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appPackage":"com.flipkart.android","autoGrantPermissions":true,"automationName":"uiautomator2","deviceName":"emulator-5554","fullReset":false,"newCommandTimeout":240,"noReset":false,"platformVersion":"9","systemPort":8208,"udid":"emulator-5554","unicodeKeyboard":true},"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallT...
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session �[39m�[32m200�[39m �[90m13096 ms - 1767�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mGET�[39m �[37m/wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[W3C (f8162ee2)]�[39m Calling AppiumDriver.getSession() with args: ["f8162ee2-e0de-4f8e-ac18-8feb7c841ead"]
[debug] �[35m[UiAutomator2]�[39m Getting session details from server to mix in
[debug] �[35m[WD Proxy]�[39m Matched '/' to command name 'getSession'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{}}
[debug] �[35m[W3C (f8162ee2)]�[39m Responding to client with driver.getSession() result: {"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appPackage":"com.flipkart.android","autoGrantPermissions":true,"automationName":"uiautomator2","deviceName":"emulator-5554","fullReset":false,"newCommandTimeout":240,"noReset":false,"platformVersion":"9","systemPort":8208,"udid":"emulator-5554","unicodeKeyboard":true},"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"...
[info] �[35m[HTTP]�[39m �[37m<-- GET /wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead �[39m�[32m200�[39m �[90m96 ms - 1699�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m
[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mGET�[39m �[37m/wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[W3C (f8162ee2)]�[39m Calling AppiumDriver.getSession() with args: ["f8162ee2-e0de-4f8e-ac18-8feb7c841ead"]
[debug] �[35m[UiAutomator2]�[39m Getting session details from server to mix in
[debug] �[35m[WD Proxy]�[39m Matched '/' to command name 'getSession'
[debug] �[35m[WD Proxy]�[39m Proxying [GET /] to [GET http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb] with body: {}
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":{}}
[debug] �[35m[W3C (f8162ee2)]�[39m Responding to client with driver.getSession() result: {"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"app":"/Users/aspiremac41/Desktop/TestAI/Flipkart.apk","appActivity":"com.flipkart.android.activity.HomeFragmentHolderActivity","appPackage":"com.flipkart.android","autoGrantPermissions":true,"automationName":"uiautomator2","deviceName":"emulator-5554","fullReset":false,"newCommandTimeout":240,"noReset":false,"platformVersion":"9","systemPort":8208,"udid":"emulator-5554","unicodeKeyboard":true},"platformName":"android","adbExecTimeout":180000,"customFindModules":"{"ai":"test-ai-classifier"}","shouldUseCompactResponses":false,"uiautomator2ServerLaunchTimeout":60000,"androidInstallTimeout":180000,"...
[info] �[35m[HTTP]�[39m �[37m<-- GET /wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead �[39m�[32m200�[39m �[90m18 ms - 1699�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mPOST�[39m �[37m/wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead/element�[39m
[info] �[35m[HTTP]�[39m �[90m{"using":"-custom","value":"ai:search"}�[39m
[debug] �[35m[W3C (f8162ee2)]�[39m Calling AppiumDriver.findElement() with args: ["-custom","ai:search","f8162ee2-e0de-4f8e-ac18-8feb7c841ead"]
[debug] �[35m[W3C (f8162ee2)]�[39m Encountered internal error running command: Error: Invalid format for the 'customFindModules' capability. It should be an object with keys corresponding to the short names and values corresponding to the full names of the element finding plugins
[debug] �[35m[W3C (f8162ee2)]�[39m at AndroidUiautomator2Driver.findByCustom (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:103:11)
[debug] �[35m[W3C (f8162ee2)]�[39m at AndroidUiautomator2Driver.findElement (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:50:23)
[debug] �[35m[W3C (f8162ee2)]�[39m at commandExecutor (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:330:9)
[debug] �[35m[W3C (f8162ee2)]�[39m at /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:125:12
[debug] �[35m[W3C (f8162ee2)]�[39m at AsyncLock._promiseTry (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:249:31)
[debug] �[35m[W3C (f8162ee2)]�[39m at exec (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:124:9)
[debug] �[35m[W3C (f8162ee2)]�[39m at AsyncLock.acquire (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/async-lock/lib/index.js:140:3)
[debug] �[35m[W3C (f8162ee2)]�[39m at AndroidUiautomator2Driver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/driver.js:343:39)
[debug] �[35m[W3C (f8162ee2)]�[39m at AppiumDriver.executeCommand (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/lib/appium.js:534:36)
[debug] �[35m[W3C (f8162ee2)]�[39m at processTicksAndRejections (internal/process/task_queues.js:85:5)
[debug] �[35m[W3C (f8162ee2)]�[39m at asyncHandler (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/protocol/protocol.js:309:21)
[info] �[35m[HTTP]�[39m �[37m<-- POST /wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead/element �[39m�[31m500�[39m �[90m23 ms - 951�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[info] �[35m[HTTP]�[39m �[37m-->�[39m �[37mDELETE�[39m �[37m/wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead�[39m
[info] �[35m[HTTP]�[39m �[90m{}�[39m
[debug] �[35m[W3C (f8162ee2)]�[39m Calling AppiumDriver.deleteSession() with args: ["f8162ee2-e0de-4f8e-ac18-8feb7c841ead"]
[debug] �[35m[BaseDriver]�[39m Event 'quitSessionRequested' logged at 1603463771871 (20:06:11 GMT+0530 (India Standard Time))
[info] �[35m[Appium]�[39m Removing session f8162ee2-e0de-4f8e-ac18-8feb7c841ead from our master session list
[debug] �[35m[UiAutomator2]�[39m Deleting UiAutomator2 session
[debug] �[35m[UiAutomator2]�[39m Deleting UiAutomator2 server session
[debug] �[35m[WD Proxy]�[39m Matched '/' to command name 'deleteSession'
[debug] �[35m[WD Proxy]�[39m Proxying [DELETE /] to [DELETE http://127.0.0.1:8208/wd/hub/session/7708dcd1-c2ff-4f2a-8248-0efbd07039cb] with no body
[debug] �[35m[WD Proxy]�[39m Got response with status 200: {"sessionId":"7708dcd1-c2ff-4f2a-8248-0efbd07039cb","value":null}
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop com.flipkart.android'
[debug] �[35m[Logcat]�[39m Stopping logcat capture
[debug] �[35m[ADB]�[39m Removing forwarded port socket connection: 8208
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 forward --remove tcp:8208'[info] �[35m[UiAutomator2]�[39m Restoring hidden api policy to the device default configuration
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy_pre_p_apps'
[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy_p_apps'[debug] �[35m[Instrumentation]�[39m .[debug] �[35m[ADB]�[39m Running '/Users/aspiremac41/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell settings delete global hidden_api_policy'[debug] �[35m[BaseDriver]�[39m Event 'quitSessionFinished' logged at 1603463773056 (20:06:13 GMT+0530 (India Standard Time))
[debug] �[35m[W3C (f8162ee2)]�[39m Received response: null
[debug] �[35m[W3C (f8162ee2)]�[39m But deleting session, so not returning
[debug] �[35m[W3C (f8162ee2)]�[39m Responding to client with driver.deleteSession() result: null
[debug] �[35m[W3C (f8162ee2)]�[39m Destroying socket connection
[info] �[35m[HTTP]�[39m �[37m<-- DELETE /wd/hub/session/f8162ee2-e0de-4f8e-ac18-8feb7c841ead �[39m�[32m200�[39m �[90m1188 ms - 14�[39m
[info] �[35m[HTTP]�[39m �[90m�[39m[debug] �[35m[Instrumentation]�[39m Time: 22.142
[debug] �[35m[Instrumentation]�[39m
[debug] �[35m[Instrumentation]�[39m OK (1 test)
[debug] �[35m[Instrumentation]�[39m The process has exited with code 0

ERROR: [email protected] run "Illegal instruction: 4"

I successfully installed the [email protected] plugin on MAC OS 10.14.3 (Mojave). But when running tests with python, there is an "Illegal instruction: 4" error.

Illegal instruction: 4

Screen Shot 2020-03-13 at 12 43 42 AM

System Info:
OS: Mac OS 10.14.3
OS Type: 64-bit

Node version: v10.19.0
NPM version: 6.13.4
Appium version: 1.16.0

So, how I can solve these issues?

Thanks in advance!

Finding element with highest confidence of '0'

One Element is found with highest confidence as '0'.

[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [JSONWP Proxy] Matched '/elements' to command name 'findElements'
[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8200/wd/hub/session/e7421f03-e644-49a5-a87c-435cdad57956/elements] with body: {"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"e7421f03-e644-49a5-a87c-435cdad57956","status":0,"value":[{"ELEMENT":"d1deb049-9c48-4d21-be64-99d410314289","rect":{"x":27,"y":65,"width":79,"height":46}},{"ELEMENT":"cc554552-c15c-461b-ba63-52878d4e0a84","rect":{"x":629,"y":47,"width":91,"height":82}},{"ELEMENT":"aa989bc5-af70-41bf-b133-6691b47fa670","rect":{"x":27,"y":172,"width":51,"height":51}},{"ELEMENT":"e2dce951-108d-4eec-b5fc-6a4e58c5db21","rect":{"x":105,"y":181,"width":102,"height":32}},{"ELEMENT":"ab4dcf06-a727-4e30-aa54-587bc8298b8c","rect":{"x":0,"y":245,"width":720,"height":2}},{"ELEMENT":"5bda0ee4-a207-4f74-a549-edf6039d9b12","rect":{"x":27,"y":273,"width":66,"height":30}},{"ELEMENT":"f7cc9b41-9d55-4868-aae6-52b5e997fb46","rect":{"x":27,"y":351,"width":51,"height":51}},{"ELEMENT":"03d04e2e-17ae-4525-b1ec-c940cf4b02a1","rect":{"x":105,"y":360,"width":203,"height":32}},{"ELEMENT":"41292536-e066-4fe9-a312-d45ec5ddcdf7","rect":{"x":27,"y":446,"width":51,"height":51}},{"ELEMENT":"5adfa1df-1735-4694-8f58-dca3b162f140","rect":{"x":105...
[ai] Getting window size in case we need to scale screenshot
[debug] [JSONWP Proxy] Matched '/window/current/size' to command name 'getWindowSize'
[debug] [JSONWP Proxy] Proxying [GET /window/current/size] to [GET http://localhost:8200/wd/hub/session/e7421f03-e644-49a5-a87c-435cdad57956/window/current/size] with body: {}
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"e7421f03-e644-49a5-a87c-435cdad57956","status":0,"value":{"height":1280,"width":720}}"
[ai] Getting screenshot to use for classifier
[debug] [JSONWP Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [JSONWP Proxy] Proxying [GET /screenshot] to [GET http://localhost:8200/wd/hub/session/e7421f03-e644-49a5-a87c-435cdad57956/screenshot] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{"sessionId":"e7421f03-e644-49a5-a87c-435cdad57956","status":0,"value":"iVBORw0KGgoAAAANSUhEUgAAAtAAAAUACAIAAADhrPJqAAAAA3NCSVQICAjb4U\/gAAAgAElEQVR4\nnOzdd3hUVd4H8DO9z2QyyUx6B5JQAiF0BKkqKGJFdxVld1Vsa1tf27vqorvW1VVXUV8VRcVVWVBE\nULp0SKEE0iCkTupMpmV6ue8fF8ZhUphM5iYBv5+HPyY3J+eeifvsfHPK77JGLnmBAAAAADCJPdgD\nAAAAgEsfAgcAAAAwDoEDAAAAGIfAAQAAAIxD4AAAAADGIXAAAAAA4xA4AAAAgHHcwR4AAABc9LLT\nNAkxiuy0uMCLFbUtTTpTRW3rYI2qn\/5x36KsZHXQxaZ247trd5+qbxuUIV3UEDjCkRCrGJ2Z0Gbo\nLD2t9Xh9vbQUC\/lxKnmNVkcN2OAA4OKRnaZ5Yun8V1ZvifinskwinF0wPDE2KiFWQQhpajdp2407\niqosVkekbpGdpinISV08My87TdN7y8Kyuu2FlUXldRF8mzFRUqmI3+237E5Pa4e5\/7cYlqLOOT9C\nEUKkIr5cLOx\/579BLFQa7Ss+j\/P2X24uyElxOD1bD5e\/\/fUuk8Xuo7pJFGIh\/7Hfz5k8Ov2xN\/9b\nUXexZnwAYM6E3NRVz95usTqWvfB5pD6MJ+Sm3nfjjAm5qd1+t7Cs7r21uwvL6vpzi8Uz8267auIF\nc0ZXFbWtn28+9P0vx\/v0U1EykdFiD7wSp5L3fvd2Q+fJM819HR4h5B\/3LRqWcnZWIy1eJRLwgho4\n3Z6mdpPD5SaENLWbHvrnt2Hc5beJox41u\/+9iIX8UZkJS+aNL8hJPVHd1Psf\/YQQNoullEuGp2oK\nslNONfRrYmrgby0U8J794wIBjysU8HLT466cOpLDYZ...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Getting screenshot slices for each element
[ai] Making label predictions based on element images
[ai] Predictions for 11 element(s) took 0.492 seconds
[ai] Found 1 matching elements
[ai] Highest confidence of any element for desired label 'location' was 0
[ai] Resetting element response attribute setting to original value: ""
[UiAutomator2] Forwarding the following settings to the UiAutomator2 server: ["elementResponseAttributes"]

Unable to run tests using Object Detect mode

The appium classifier plugin is not able to find the element. I could see there are few information related to model, but not sure if that's the root cause of the issue.

`[HTTP] --> POST /wd/hub/session/0233bd55-e62c-49c4-aac8-912134a17d58/element
[HTTP] {"using":"-custom","value":"search"}
[debug] [W3C (0233bd55)] Calling AppiumDriver.findElement() with args: ["-custom","search","0233bd55-e62c-49c4-aac8-912134a17d58"]
[debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2019-12-23 14:30:45.216136: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-12-23 14:30:45.241688: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x11d1e3290 initialized for platform Host (this does not guarantee that XLA will be used).
Devices:
2019-12-23 14:30:45.241721: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
[debug] [BaseDriver] Waiting up to 0 ms for condition
[ai] Will use object detection method for finding elements via AI
[ai] Setting confidence threshold to default value of 0.2
[ai] Getting window size in case we need to scale screenshot
[debug] [WD Proxy] Matched '/window/current/size' to command name 'getWindowSize'
[debug] [WD Proxy] Proxying [GET /window/current/size] to [GET http://localhost:8207/wd/hub/session/087c93f3-8cdb-42cf-8a10-3294cac360b7/window/current/size] with body: {}
[debug] [WD Proxy] Got response with status 200: "{"sessionId":"087c93f3-8cdb-42cf-8a10-3294cac360b7","status":0,"value":{"height":1504,"width":2560}}"
[ai] Getting screenshot to use for classifier
[debug] [WD Proxy] Matched '/screenshot' to command name 'getScreenshot'
[debug] [WD Proxy] Proxying [GET /screenshot] to [GET http://localhost:8207/wd/hub/session/087c93f3-8cdb-42cf-8a10-3294cac360b7/screenshot] with no body
[debug] [WD Proxy] Got response with status 200: "{"sessionId":"087c93f3-8cdb-42cf-8a10-3294cac360b7","status":0,"value":"iVBORw0KGgoAAAANSUhEUgAACgAAAAZACAYAAAC1rBvAAAAABHNCSVQICAgIfAhkiAAAIABJREFU\neJzUfXm8XVV1\/\/e+l\/llDhkIZGIMJEAAIQjKEKuCA40TxAmoraK\/CmpVKpZWKihWrAO0tWhRwSmo\nFRApDhRwYHJg0CQyJzEBMpCQl\/Elee+d3x+PczlvZ69x73Nfuvz4efees\/daa6+9hu\/aOdzTWHjp\nxAJKaqDR\/FygaF4rP3PzpDFW8vKszis\/16FfTN7ewEfiF16PjePsVvqIxEOjG8fLwpNbQ06ibBf6\nHIBs9pB08FKdMeGVm+seZU9pzXurbXPmMUtsa3NIjnuWcZZ4SZWVyjOHjl7ZKeNiMQXo12HVI0Xv\nnHuY4r8D4Y9emSk5JaXG5aBUbGjRnxpbl39rKRc20\/o79ZmTrZHv1Se8Zq31qfLr4F8X1VUTUmTn\nxDJ7I6X2L57xrbSppw57bELltPCahTzYJ9Ql\/Bz7m0Ix\/qmkPcspSStbc6YQ3qurF8vF17KmVF5a\nf65rbanjU+KRq6m5sZMlZ1mxYm6b5iKrH0sYS2sTT97w8NBQq3vwUqanr9Xsl9W2KbiVqnOxa56+\nmesbqOueazmwu5a8ucCa\/7w910DEg0TWnlxjJ69Ppujrjbu6+06NHAsPoH+vXf1ula2pwdYcWurj\nqfk5KCdepO55\/KIVebCVdb3VeDEnj70hljmeKfZMxQVenTXfNXNz9n9avaVxKT2GZW4dvUxuTCKN\nz23bVvVrOWRKfZq1t9Xol7uutGpfvP2VhWeu2qzBN7mwlEVXi+7SXKvsVuwfp3POteQcW45vP+zU\nkZeqZwSTcyoV41e9ppU30OTVU5oX3k+Ro0kCGj570w...
[ai] Turning screenshot into HTML image for use with canvas
[ai] Writing screenshot to /usr/local/lib/node_modules/test-ai-classifier/build-js/lib/Mon, 23 Dec 2019 09:00:46 GMT_classifiertest.png for use in object detection
[ai] Gathering object candidates from tensorflow native
2019-12-23 14:30:46.785228: I tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model
2019-12-23 14:30:46.950439: I tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2019-12-23 14:30:47.595144: I tensorflow/cc/saved_model/loader.cc:202] Restoring SavedModel bundle.
2019-12-23 14:30:47.595208: I tensorflow/cc/saved_model/loader.cc:212] The specified SavedModel has no variables; no checkpoints were restored. File does not exist: /usr/local/lib/node_modules/test-ai-classifier/model/obj_detection_model/variables/variables.index
2019-12-23 14:30:47.595237: I tensorflow/cc/saved_model/loader.cc:311] SavedModel load for tags { serve }; Status: success. Took 810005 microseconds.
[ai] Candidates retrieved
[ai] Making label predictions based on element images
This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.
[ai] Predictions for 7 element(s) took 0.398 seconds
[ai] Found 0 matching elements

[ai] Registering image elements with driver
[debug] [W3C (0233bd55)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [W3C (0233bd55)] at AndroidUiautomator2Driver.findByCustom (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:176:13)
[HTTP] <-- POST /wd/hub/session/0233bd55-e62c-49c4-aac8-912134a17d58/element 404 17981 ms - 397
[HTTP]

org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters.
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'm-c02xf25rjg5h', ip: 'fe80:0:0:0:4fb:1360:f4af:594b%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_192'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities {app: /Users/kverma1/Documents/mo..., appPackage: com.asda.android, appWaitActivity: com.asda.android., automationName: UIAutomator2, avd: Nexus_10_API_27, avdLaunchTimeout: 300000, avdReadyTimeout: 300000, browserName: , customFindModules: {ai: test-ai-classifier}, databaseEnabled: false, desired: {app: /Users/kverma1/Documents/mo..., appWaitActivity: com.asda.android., automationName: UIAutomator2, avd: Nexus_10_API_27, avdLaunchTimeout: 300000, avdReadyTimeout: 300000, browserName: , customFindModules: {ai: test-ai-classifier}, deviceName: Nexus_10_API_27, fullReset: false, newCommandTimeout: 120, noReset: true, platformName: android, platformVersion: 8.1, shouldUseCompactResponses: false, systemPort: 8207, testaiFindMode: object_detection, testaiObjectDetectionThreshold: 0.3, uiautomator2ServerLaunchTimeout: 300000}, deviceApiLevel: 27, deviceManufacturer: Google, deviceModel: Android SDK built for x86, deviceName: emulator-5554, deviceScreenDensity: 320, deviceScreenSize: 2560x1600, deviceUDID: emulator-5554, fullReset: false, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, newCommandTimeout: 120, noReset: true, pixelRatio: 2, platform: LINUX, platformName: Android, platformVersion: 8.1.0, shouldUseCompactResponses: false, statBarHeight: 48, systemPort: 8207, takesScreenshot: true, testaiFindMode: object_detection, testaiObjectDetectionThreshold: 0.3, uiautomator2ServerLaunchTimeout: 300000, viewportRect: {height: 1456, left: 0, top: 48, width: 2560}, warnings: {}, webStorageEnabled: false}
Session ID: 0233bd55-e62c-49c4-aac8-912134a17d58
*** Element info: {Using=-custom, value=search}

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.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:41)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:61)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.findElement(AndroidDriver.java:1)
at io.appium.java_client.FindsByCustom.findElementByCustom(FindsByCustom.java:38)
at com.walmart.asda.mobile.poc.TestSearch_01.testBasicSearch_iPhone(TestSearch_01.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at org.testng.TestRunner.privateRun(TestRunner.java:770)
at org.testng.TestRunner.run(TestRunner.java:591)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:41)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:443)
at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:67)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)`

Error: undefined symbol: TF_Version

Hi @jlipps and everyone
I have successfully installed appium-classifier-plugin on linux (ubuntu 19.04) in the following option 3:

  • Install it globally (npm install -g test-ai-classifier) and make sure your NODE_PATH is set to the global node_modules dir.

But I have problem with TF_Version when doing the build app demo.
Someone please help me. Thanks.

[email protected]
[email protected]
Appium 1.16.0

[HTTP] <-- POST /wd/hub/session 200 11314 ms - 1126 [HTTP] [HTTP] --> POST /wd/hub/session/a1118df1-8cc2-4372-8839-99a9b59df666/element [HTTP] {"using":"-custom","value":"ai:cart"} [debug] [W3C (a1118df1)] Calling AppiumDriver.findElement() with args: ["-custom","ai:cart","a1118df1-8cc2-4372-8839-99a9b59df666"] [debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier' 2020-02-10 14:43:55.354898: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 2020-02-10 14:43:55.387822: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2592000000 Hz 2020-02-10 14:43:55.388720: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4ea8260 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2020-02-10 14:43:55.388736: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version node: symbol lookup error: /home/s1mple/.nvm/versions/node/v12.14.1/lib/node_modules/test-ai-classifier/build/Release/test-ai-classifier.node: undefined symbol: TF_Version

Screenshot from 2020-02-10 15-06-18

Getting error while installing test-ai-classifier in windows machine

While installing test-ai-classifier 4.0.2 in windows machine. I am getting below error.
Note: test-ai-classifier 2.1.1 worked for me in windows only with this version i am facing issue.

main.obj : error LNK2019: unresolved external symbol __imp_TF_Version referenced in function "class Napi::Object __cdec
l Init(class Napi::Env,class Napi::Object)" (?Init@@ya?AVObject@Napi@@venv@2@V12@@z) [C:\Users\AppData\Roaming
npm\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_NewStatus referenced in function "private: bool __cd
ecl Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modules
\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_DeleteStatus referenced in function "private: void _
_cdecl Detection::cleanup(void)" (?cleanup@Detection@@AEAAXXZ) [C:\Users\AppData\Roaming\npm\node_modules\appiu
m\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_GetCode referenced in function "private: bool __cdec
l Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modules\a
ppium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_Message referenced in function "private: bool __cdec
l Detection::setErrorWithStatus(class std::basic_string<char,struct std::char_traits,class std::allocator >
)" (?setErrorWithStatus@Detection@@AEAA_NV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@@z) [C:\Users\ni
a3cob\AppData\Roaming\npm\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_NewTensor referenced in function "private: bool __cd
ecl Detection::setImageTensor(void)" (?setImageTensor@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_m
odules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_DeleteTensor referenced in function "void __cdecl De
allocator(void *,unsigned __int64,void *)" (?Deallocator@@YAXPEAX_K0@Z) [C:\Users\AppData\Roaming\npm\node_modu
les\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_NumDims referenced in function "void __cdecl printTe
nsorDims(class std::vector<struct TF_Tensor *,class std::allocator<struct TF_Tensor *> >)" (?printTensorDims@@yaxv?$vec
tor@PEAUTF_Tensor@@v?$allocator@PEAUTF_Tensor@@@std@@@std@@@z) [C:\Users\AppData\Roaming\npm\node_modules\appiu
m\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_Dim referenced in function "void __cdecl printTensor
Dims(class std::vector<struct TF_Tensor *,class std::allocator<struct TF_Tensor *> >)" (?printTensorDims@@yaxv?$vector@
PEAUTF_Tensor@@v?$allocator@PEAUTF_Tensor@@@std@@@std@@@z) [C:\Users\AppData\Roaming\npm\node_modules\appium\no
de_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_TensorData referenced in function "private: bool __c
decl Detection::runSession(void)" (?runSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modules
appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_StringEncode referenced in function "private: bool _
_cdecl Detection::setImageTensor(void)" (?setImageTensor@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\nod
e_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_StringEncodedSize referenced in function "private: b
ool __cdecl Detection::setImageTensor(void)" (?setImageTensor@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\np
m\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_NewSessionOptions referenced in function "private: b
ool __cdecl Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node
_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_DeleteSessionOptions referenced in function "private
: bool __cdecl Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\n
ode_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_NewGraph referenced in function "private: bool __cde
cl Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modules
appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_DeleteGraph referenced in function "private: void __
cdecl Detection::cleanup(void)" (?cleanup@Detection@@AEAAXXZ) [C:\Users\AppData\Roaming\npm\node_modules\appium
\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_GraphGetTensorNumDims referenced in function "privat
e: bool __cdecl Detection::initOperations(void)" (?initOperations@Detection@@AEAA_NXZ) [C:\Users\AppData\Roamin
g\npm\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_GraphOperationByName referenced in function "private
: bool __cdecl Detection::initOperations(void)" (?initOperations@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming
\npm\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_LoadSessionFromSavedModel referenced in function "pr
ivate: bool __cdecl Detection::initSession(void)" (?initSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming
npm\node_modules\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_CloseSession referenced in function "private: bool _
_cdecl Detection::runSession(void)" (?runSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_module
s\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_DeleteSession referenced in function "private: bool
__cdecl Detection::runSession(void)" (?runSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modul
es\appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
detection.obj : error LNK2019: unresolved external symbol __imp_TF_SessionRun referenced in function "private: bool __c
decl Detection::runSession(void)" (?runSession@Detection@@AEAA_NXZ) [C:\Users\AppData\Roaming\npm\node_modules
appium\node_modules\test-ai-classifier\build\test-ai-classifier.vcxproj]
C:\Users\AppData\Roaming\npm\node_modules\appium\node_modules\test-ai-classifier\build\Release\test-ai-classifi
er.node : fatal error LNK1120: 22 unresolved externals [C:\Users\AppData\Roaming\npm\node_modules\appium\node_m
odules\test-ai-classifier\build\test-ai-classifier.vcxproj]

Cant find Python executable even if Python is installed on my machine

Hi,
I have Python version 3.7.3 installed on my windows 10 machine.
I tried to install this plugin into this machine.
While doing so I receive following error:-
Building TensorFlow Node.js bindings
C:\Program Files\Appium\node_modules@tensorflow\tfjs-node\scripts\install.js:161
throw new Error('node-gyp rebuild failed with: ' + err);
^

Error: node-gyp rebuild failed with: Error: Command failed: node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "C:\Program Files\Python\python.EXE", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:483:19)
gyp ERR! stack at PythonFinder. (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Windows_NT 10.0.17134

Thanks & Regards,
Nishant Shah

Error: Cannot find module '../build/Release/canvas.node'

when I try to execute my script having driver.FindElement("-custom","ai:plus");
I receive this error:-
{ Error: Cannot find module '../build/Release/canvas.node'
at require (internal/modules/cjs/helpers.js:22:18)
at Module.require (internal/modules/cjs/loader.js:637:17)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) code: 'MODULE_NOT_FOUND' }

Somewhere I read to upgrade node.js to latest version to get rid of this issue. But, even after upgrading to 10.15.3, getting same error.
Any idea why this might be occurring?

Thanks,
Nishant Shah

Original error: Error: Cannot find module 'test-ai-classifier'

I am facing the following issue in Mac System with Android Device , with Walmart App
Error is :

Encountered internal error running command: Error: Could not load your custom find module 'ai'. Did you put it somewhere Appium can 'require' it? Original error: Error: Cannot find module 'test-ai-classifier'

Version details : Node : v10.16.0 npm : 6.9.0 . Appium Desktop Mac Version : 1.10.0

Source Code :
HashMap<String, String> customFindModules = new HashMap<>();
customFindModules.put("ai", "test-ai-classifier");
dc.setCapability("appPackage","com.walmart.android");
dc.setCapability("appActivity", "com.walmart.android.app.main.MainActivity");
dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.0.1");
dc.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.10.0");
dc.setCapability("customFindModules", customFindModules);
dc.setCapability("shouldUseCompactResponses", false);

Identifiers Used :
driver.findElement(MobileBy.custom("cart")).click();
driver.findElement(MobileBy.custom("search")).click();

Note : No errors found while invoking require("test-ai-classifier"); under node console from Appium installed folder.

Please help me out , If some one has find similar issues.
Thanks in Advance.

install error: fatal error: '../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h' file not found

sudo npm --registry http://registry.npm.taobao.org install test-ai-classifier --unsafe-perm


use command install with error like below:

CXX(target) Release/obj.target/test-ai-classifier/cc/main.o
In file included from ../cc/main.cc:3:
../cc/detection.h:6:10: fatal error: '../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h' file not found
#include "../node_modules/@tensorflow/tfjs-node/deps/include/tensorflow/c/c_api.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/test-ai-classifier/cc/main.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 18.7.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Encountered internal error running command: TypeError: Cannot destructure property `x` of 'undefined' or 'null'.

Full log:

[BaseDriver] Didn't know about setting 'elementResponseAttributes'. Are you sure you spelled it correctly? Proceeding anyway. Valid settings: imageMatchThreshold,fixImageFindScreenshotDims,fixImageTemplateSize,fixImageTemplateScale,defaultImageTemplateScale,checkForImageElementStaleness,autoUpdateImageElementPosition,imageElementTapStrategy,ignoreUnimportantViews
[ai] Setting confidence threshold to default value of 0.2
[ai] Retrieving data for all leaf-node elements on screen
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//[not(child::)]","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding '//[not(child::)]' using 'XPATH' with the contextId: '' multiple: true
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageButton, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.Button, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.Button, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.Button, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.Button, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.Button, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.Button, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.Button, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.Button, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.FrameLayout, INSTANCE=9]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.FrameLayout, INSTANCE=9]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=2]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=3]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=4]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.RelativeLayout, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.RelativeLayout, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=5]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.EditText, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.EditText, INSTANCE=0]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=6]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.view.View, INSTANCE=7]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.view.View, INSTANCE=7]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":[{"ELEMENT":"1"},{"ELEMENT":"2"},{"ELEMENT":"3"},{"ELEMENT":"4"},{"ELEMENT":"5"},{"ELEMENT":"6"},{"ELEMENT":"7"},{"ELEMENT":"8"},{"ELEMENT":"9"},{"ELEMENT":"10"},{"ELEMENT":"11"},{"ELEMENT":"12"},{"ELEMENT":"13"},{"ELEMENT":"14"},{"ELEMENT":"15"},{"ELEMENT":"16"},{"ELEMENT":"17"},{"ELEMENT":"18"},{"ELEMENT":"19"},{"ELEMENT":"20"},{"ELEMENT":"21"},{"ELEMENT":"22"},{"ELEMENT":"23"},{"ELEMENT":"24"},{"ELEMENT":"25"},{"ELEMENT":"26"}]}
[debug] [AndroidBootstrap] Received command result from bootstrap
[ai] Getting window size in case we need to scale screenshot
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"getDeviceSize","params":{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"getDeviceSize","params":{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: getDeviceSize
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":{"height":1424,"width":720}}
[debug] [AndroidBootstrap] Received command result from bootstrap
[ai] Getting screenshot to use for classifier
[ai] Turning screenshot into HTML image for use with canvas
[ai] Getting screenshot slices for each element
[ai] Resetting element response attribute setting to original value: undefined
[debug] [W3C (75e57f0c)] Encountered internal error running command: TypeError: Cannot destructure property x of 'undefined' or 'null'.
[debug] [W3C (75e57f0c)] at getCanvasByRect (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/image.js:58:9)
[debug] [W3C (75e57f0c)] at /usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:176:28
[debug] [W3C (75e57f0c)] at Array.map ()
[debug] [W3C (75e57f0c)] at asyncmap (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:74:26)
[debug] [W3C (75e57f0c)] at getElementImages (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:174:30)
[debug] [W3C (75e57f0c)] at Object.find (/usr/local/lib/node_modules/appium/node_modules/test-ai-classifier/lib/classifier.js:274:32)
[debug] [W3C (75e57f0c)] at condition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:158:16)
[debug] [W3C (75e57f0c)] at wrappedCondFn (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:157:12)
[debug] [W3C (75e57f0c)] at spin (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:112:20)
[debug] [W3C (75e57f0c)] at waitForCondition (/usr/local/lib/node_modules/appium/node_modules/asyncbox/lib/asyncbox.js:125:10)
[debug] [W3C (75e57f0c)] at AndroidDriver.implicitWaitForCondition (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/timeout.js:159:10)
[debug] [W3C (75e57f0c)] at AndroidDriver.findByCustom (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:172:5)
[debug] [W3C (75e57f0c)] at AndroidDriver.findElement (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/basedriver/commands/find.js:50:12)
[HTTP] <-- POST /wd/hub/session/75e57f0c-9382-41b0-bc46-6d74ddf274e0/element 500 3688 ms - 611
[HTTP]
[Logcat] Logcat terminated with code 0, signal null
[UiAutomator] UiAutomator exited unexpectedly with code 0, signal null
[debug] [UiAutomator] Moving to state 'stopped'

Start Classifier server only ,run ERROR:test-ai-classifier: command not found

How can I use “test-ai-classifier server”: alone??

  1. Version info:
    [email protected]
    [email protected]
    [email protected]
    CentOS Linux release 7.4.1708

  2. install
    cd /usr/local/nodejs/node_modules/appium/
    npm install @tensorflow/tfjs-node
    npm install test-ai-classifier

  3. ERROR info

[root@auto-1f8fc1c00 test-ai-classifier]# pwd
/usr/local/nodejs/node_modules/appium/node_modules/test-ai-classifier
[root@auto-1f8fc1c00 test-ai-classifier]# ls
binding.gyp  build  build-js  cc  classifier-proto  gulpfile.js  index.js  lib  LICENSE  model  node_modules  package.json  postinstall.js  README.md
[root@auto-1f8fc1c00 test-ai-classifier]# test-ai-classifier -h 127.0.0.1 -p 50051
-bash: test-ai-classifier: command not found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.