Git Product home page Git Product logo

appiumpro's Introduction

appiumpro

Sample code to accompany the appiumpro.com newsletter

appiumpro's People

Contributors

dependabot[bot] avatar jlipps avatar jonahss 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

appiumpro's Issues

can't run the tests from edition 28

there seems to be something missing on the gradle file, there's no test task.

➜  appiumpro git:(master) gradle cleanTest test --tests "Edition028_Parallel_Testing_iO*"

FAILURE: Build failed with an exception.

* What went wrong:
Task 'cleanTest' not found in root project 'appiumpro'.

* Try:
Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s

Hello,dose editions-39(AI) support Python?

Appium v1.10.0
Appium-Python-Client 0.36
selenium 3.141.0
caps:

'customFindModules': {'ai': 'test-ai-classifier'},
'shouldUseCompactResponses': 'false'

d.find_element_by_custom("close")
 File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/site-packages/appium/webdriver/webdriver.py", line 423, in find_element_by_custom
    return self.find_element(by=MobileBy.CUSTOM, value=selector)
  File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/site-packages/appium/webdriver/webdriver.py", line 213, in find_element
    'value': value})['value']
  File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/site-packages/appium/webdriver/errorhandler.py", line 29, in check_response
    raise wde
  File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/site-packages/appium/webdriver/errorhandler.py", line 24, in check_response
    super(MobileErrorHandler, self).check_response(response)
  File "/Users/chen/.pyenv/versions/httprunner/lib/python3.6/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: Cannot destructure property `x` of 'undefined' or 'null'.
2019-01-21 17:39:39:907 - [HTTP] --> POST /wd/hub/session/da416914-dfea-4eef-9acf-6a2dceb6f154/element
2019-01-21 17:39:39:908 - [HTTP] {"using":"-custom","value":"close","sessionId":"da416914-dfea-4eef-9acf-6a2dceb6f154"}
2019-01-21 17:39:39:909 - [debug] [W3C (da416914)] Calling AppiumDriver.findElement() with args: ["-custom","close","da416914-dfea-4eef-9acf-6a2dceb6f154"]
2019-01-21 17:39:39:911 - [debug] [BaseDriver] Find plugin 'ai' requested; will attempt to use it from 'test-ai-classifier'
2019-01-21 17:39:39:912 - [debug] [BaseDriver] Waiting up to 0 ms for condition
2019-01-21 17:39:39:913 - [ai] Retrieving current settings to check element response attributes
2019-01-21 17:39:39:913 - [ai] We will need to update settings to include element response attributes
2019-01-21 17:39:39:914 - [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
2019-01-21 17:39:39:914 - [ai] Setting confidence threshold to default value of 0.2
2019-01-21 17:39:39:914 - [ai] Retrieving data for all leaf-node elements on screen
2019-01-21 17:39:39:915 - [debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
2019-01-21 17:39:39:915 - [debug] [BaseDriver] Waiting up to 0 ms for condition
2019-01-21 17:39:39:916 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//*[not(child::*)]","context":"","multiple":true}}
2019-01-21 17:39:39:926 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"xpath","selector":"//*[not(child::*)]","context":"","multiple":true}}
2019-01-21 17:39:39:930 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2019-01-21 17:39:39:939 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
2019-01-21 17:39:39:940 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding '//*[not(child::*)]' using 'XPATH' with the contextId: '' multiple: true
2019-01-21 17:39:40:183 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
2019-01-21 17:39:40:183 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=0]
2019-01-21 17:39:40:184 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:447 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
2019-01-21 17:39:40:447 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=0]
2019-01-21 17:39:40:448 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:502 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
2019-01-21 17:39:40:503 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=1]
2019-01-21 17:39:40:503 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:509 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
2019-01-21 17:39:40:509 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=1]
2019-01-21 17:39:40:510 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:525 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
2019-01-21 17:39:40:525 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=2]
2019-01-21 17:39:40:526 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:537 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
2019-01-21 17:39:40:538 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.ImageView, INSTANCE=2]
2019-01-21 17:39:40:538 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:538 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
2019-01-21 17:39:40:545 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=3]
2019-01-21 17:39:40:545 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:554 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
2019-01-21 17:39:40:555 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=4]
2019-01-21 17:39:40:556 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:563 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
2019-01-21 17:39:40:564 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLASS=android.widget.TextView, INSTANCE=5]
2019-01-21 17:39:40:564 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Selector ends with instance.
2019-01-21 17:39:40:572 - [debug] [AndroidBootstrap] Received command result from bootstrap
2019-01-21 17:39:40:572 - [ai] Getting window size in case we need to scale screenshot
2019-01-21 17:39:40:573 - [debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"getDeviceSize","params":{}}
2019-01-21 17:39:40:575 - [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"}]}
2019-01-21 17:39:40:578 - [debug] [AndroidBootstrap] Received command result from bootstrap
2019-01-21 17:39:40:579 - [ai] Getting screenshot to use for classifier
2019-01-21 17:39:40:579 - [debug] [ADB] Device API level: 28
2019-01-21 17:39:40:584 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"getDeviceSize","params":{}}
2019-01-21 17:39:40:585 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
2019-01-21 17:39:40:585 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: getDeviceSize
2019-01-21 17:39:40:586 - [debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":{"height":1794,"width":1080}}
2019-01-21 17:39:41:596 - [ai] Turning screenshot into HTML image for use with canvas
2019-01-21 17:39:41:635 - [ai] Getting screenshot slices for each element
2019-01-21 17:39:41:639 - [ai] Resetting element response attribute setting to original value: undefined
2019-01-21 17:39:41:639 - [debug] [W3C (da416914)] Encountered internal error running command: TypeError: Cannot destructure property `x` of 'undefined' or 'null'.
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at rect (/Users/chen/node_modules/test-ai-classifier/lib/image.js:58:33)
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at elsAndImages (/Users/chen/node_modules/test-ai-classifier/lib/classifier.js:176:28)
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at Array.map (<anonymous>)
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at map (/Users/chen/node_modules/asyncbox/lib/asyncbox.js:75:26)
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at Generator.next (<anonymous>)
2019-01-21 17:39:41:640 - [debug] [W3C (da416914)]     at asyncGeneratorStep (/Users/chen/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at _next (/Users/chen/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at /Users/chen/node_modules/@babel/runtime/helpers/asyncToGenerator.js:32:7
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at new Promise (<anonymous>)
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at /Users/chen/node_modules/@babel/runtime/helpers/asyncToGenerator.js:21:12
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at asyncmap (/Users/chen/node_modules/asyncbox/build/lib/asyncbox.js:160:20)
2019-01-21 17:39:41:641 - [debug] [W3C (da416914)]     at getElementImages (/Users/chen/node_modules/test-ai-classifier/lib/classifier.js:174:30)
2019-01-21 17:39:41:642 - [debug] [W3C (da416914)]     at Object.getElementImages (/Users/chen/node_modules/test-ai-classifier/lib/classifier.js:270:32)
2019-01-21 17:39:41:642 - [debug] [W3C (da416914)]     at <anonymous>
2019-01-21 17:39:41:643 - [HTTP] <-- POST /wd/hub/session/da416914-dfea-4eef-9acf-6a2dceb6f154/element 500 1735 ms - 687
2019-01-21 17:39:41:643 - [HTTP]
^C2019-01-21 17:54:35:105 - [Appium] Received SIGINT - shutting down
2019-01-21 17:54:35:109 - [Logcat] Logcat terminated with code null, signal SIGINT
2019-01-21 17:54:35:110 - [UiAutomator] UiAutomator exited unexpectedly with code null, signal SIGINT
2019-01-21 17:54:35:110 - [debug] [UiAutomator] Moving to state 'stopped'
2019-01-21 17:54:35:112 - [debug] [AndroidDriver] Shutting down Android driver

zoom in and zoom out not working on dialect OSS

I am trying to implement zoom in and zoom out in my application. Now when I try to do it in my unit test it is working as expected. But when I try it in my integration test it gives an error. The only difference I can find in the two is that when the app is being launched in the unit test it works on dialect W3C and when I am working on the integration test it works on dialect OSS.

Please view the logs for error details:
https://appiumpro.com/editions/67-generating-touch-gestures-to-zoom-in-and-out-on-google-maps
https://gist.github.com/sudhanshuprakash/f38c2da3bb1b75aa39e5bac0050a5b66
https://gist.github.com/sudhanshuprakash/816c27075b31d5b4d7e3d64c6d986cac

Could not load your custom find module 'ai'

org.openqa.selenium.WebDriverException: 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: Cannot find module 'test-ai-classifier'

Capabilities that I'm using:

        HashMap<String, String> customFindModules = new HashMap<>();
        customFindModules.put("ai", "test-ai-classifier");
        capabilities.setCapability("customFindModules", customFindModules);
        capabilities.setCapability("shouldUseCompactResponses", false);

        capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.9.2-beta.2");
        driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4725/wd/hub"), 
        capabilities);

It fails on clicking the search element:

private By search = MobileBy.custom("search");

    @Test
    public void testFindElementUsingAI() {
        driver.findElement(search).click();
    }

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'

Error: Could not load your custom find module 'ai'.

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.

Events API - Java Client Version

Hi, regarding "Edition094_Events_API.java", is "io.appium.java_client.serverevents.ServerEvents" only available in java-client-7.2.0, because I can't find this package? Thanks.

Error: Prediction result array had 4 elements but labels list had 106 elements.

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]

Setting location in yml file

Hi,
Not really an issue, more a question.
I am also using the yml file to configure my device farm run and I wanted to know if you know a way with Appium to set up the device location ( lat and long) directly from this yml file.
I know Appium has a fonction to setLocation but I cannot manage to find one working in the yml file...
Just wondering!
Thanks a lot

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/[email protected] (from /../../node_modules/test-ai-classifier/node_modules/@tensorflow/tfjs/package.json)

So, how I can solve these issues?

Thanks in advance!

scroll not working

I am trying to scroll using the methods provided here but I endup with an error any Idea?

abstract public class Edition107_Base {

I am calling the following in my test I am using appium java client 7.0.0

scroll(ScrollDirection.DOWN);

But I am getting following error...

org.openqa.selenium.UnsupportedCommandException: actions
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10'
Driver info: driver.version: RemoteWebDriver
	at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode(AbstractHttpCommandCodec.java:218)
	at org.openqa.selenium.remote.http.AbstractHttpCommandCodec.encode(AbstractHttpCommandCodec.java:117)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:152)
	at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
	at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
	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.perform(RemoteWebDriver.java:618)
	at com.test.qa.pages.DriverPageUtil.swipe(DriverPageUtil.java:368)	

WebDriverException when using deep link with iOS application (Edition007_Deep_Linking)

I've build ipa file of TheApp and executing both ios tests from Edition007_Deep_Linking class.

First (slow with step by step method) passing without issues, but second throw an WebDriverException with An unknown server-side error occurred while processing the command error message.

Server logs: https://gist.github.com/ochubey/ebb6a551aaf52778e26bc9bfac640ea5
Client logs: https://gist.github.com/ochubey/61c7fe62f92018c0060aba5c840df0db

UPD: trying openning theapp://login/alice/mypassword from Safari on real device - it's navegote to login page ... sometimes ... but never enter login/password.

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'

Cannot Check Leaks

When choose Leaks as a performance checker and then startPerfRecord, app will record 5 seconds then will be stopped without results

Appium Log:
Got response with status 200: {"value":"The application under test with bundle id ' ' is not running, possibly crashed"

Image recognition not working

While testing image recognition, I was not able to make it work.

Appium Desktop 1.7.0

[2018-09-12 10:54:41][BaseDriver] Verifying screenshot size and aspect ratio
[2018-09-12 10:54:41][BaseDriver] Screenshot size matched screen size
[2018-09-12 10:54:41][W3C] Encountered internal error running command: Error: opencv4nodejs module is required to use OpenCV features. Please install it first (npm i -g opencv4nodejs) and restart Appium. Read https://github.com/justadudewhohacks/opencv4nodejs#how-to-install for more details on this topic.
[2018-09-12 10:54:41][W3C] at initOpenCV (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-support/lib/image-util.js:100:11)
[2018-09-12 10:54:41][W3C] at Object.getImageOccurrence$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-support/lib/image-util.js:420:3)
[2018-09-12 10:54:41][W3C] at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)

Nevertheless, opencv4nodejs is already installed

$ npm list -g --depth=0
/usr/local/lib
├── [email protected]
└── [email protected]

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.