Skip to content

Conversation

ki4070ma
Copy link
Collaborator

@ki4070ma ki4070ma commented Jan 1, 2020

@ki4070ma ki4070ma changed the title feat: Add viewmatcher [wip] feat: Add viewmatcher Jan 1, 2020
@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Jan 1, 2020

Need behavior check after below issues resolved.

appium/appium-espresso-driver#503

@KazuCocoa
Copy link
Member

Did the socket hang error happen?

@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Jan 1, 2020

@KazuCocoa
I'm not sure what you mean is it, but appium server log is here.

appium log
https://gist.github.com/ki4070ma/d955f7159f014a42c0d5996516d782b0

This line shows root cause?
https://gist.github.com/ki4070ma/d955f7159f014a42c0d5996516d782b0#file-gistfile1-txt-L162

kotlin.KotlinNullPointerException
io.appium.espressoserver.lib.http.Server.serve(Server.kt:49)
fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:945)
fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)
java.lang.Thread.run(Thread.java:764)

@KazuCocoa
Copy link
Member

Perhaps it was not #503

What the result of the behaviour of the below adb command on your env?
Then, how about the logcat output if it rases an error?

adb shell am instrument -w -e debug false io.appium.espressoserver.test/androidx.test.runner.AndroidJUnitRunner

@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Jan 1, 2020

@KazuCocoa
Thanks for your checks.

What the result of the behaviour of the below adb command on your env?

Not finished below command execution as below.
(Installed io.appium.espressoserver.test package app into the device.)

Can I take any actions?

$ adb shell am instrument -w -e debug false io.appium.espressoserver.test/androidx.test.runner.AndroidJUnitRunner

io.appium.espressoserver.EspressoServerRunnerTest:

@KazuCocoa
Copy link
Member

Thanks.

Can I take any actions?

We should clarify the reason of the below log on your environment. Espresso server looks worked.
Next is maybe making sure if launching io.appium.android.apis/.ApiDemos can finish in 45 seconds or something error happens.

[WD Proxy] Got an unexpected response with status 500: {"id":"f091e8c7-ef39-478e-98d0-9ebf7b7a1401","sessionId":null,"value":{"error":"session not created","message":"java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=io.appium.android.apis/.ApiDemos } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1577868437830 and now the last time the queue went idle was: 1577868443769. If these numbers are the same your activity might be hogging the event queue.","stacktrace":"io.appium.espressoserver.lib.handlers.exceptions.SessionNotCreatedException: java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=io.appium.android.apis/.ApiDemos } within 45 seconds. Perha...

@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Jan 3, 2020

[Notes]

@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Feb 8, 2020

@KazuCocoa @mykola-mokhnach

Espresso driver seems working when using the emulator.
So I'll use the emulator for this PR.

Question

Can I ask how to upgrade the espresso driver ver within appium?
I'd like to use ver 1.19.0 or later. (https://github.com/appium/appium-espresso-driver/commits/master)
I've tried to re-install appium and use forceEspressoRebuild capability, but it seems still using 1.18.0.

Appium log is as below.

◆[Appium log] > Seems using espresso driver ver1.18.0

[debug] [Espresso] 'forceEspressoRebuild' capability is enabled
[debug] [Espresso] Deleting the obsolete Espresso server package '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk'
[Espresso] Building espresso server
[debug] [Espresso] build dir: /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/espresso-server
[debug] [Espresso] Copying espresso server template from (/usr/local/lib/node_modules/appium/node_modules/appium-espresso-driver/espresso-server to /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/espresso-server)
[debug] [Espresso] Beginning build with command './gradlew assembleAndroidTest' in directory '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/espresso-server'
[debug] [Espresso] Output from Gradle will not be logged. To change this, use 'showGradleLog' desired capability
[Espresso] Repackaging espresso server for: 'io.appium.android.apis'
[Espresso] Creating new manifest: '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml'
[debug] [ADB] Found the most recent Android platform: {"platform":"android-28","platformPath":"/Users/atsushimori/Library/Android/sdk/platforms/android-28"}
[ADB] Using 'aapt2' from '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/aapt2'
[debug] [ADB] Compiling the manifest using '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/aapt2 link -o /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml.apk --manifest /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml --rename-manifest-package io.appium.espressoserver.test --rename-instrumentation-target-package io.appium.android.apis -I /Users/atsushimori/Library/Android/sdk/platforms/android-28/android.jar -v'
[debug] [ADB] Compiled the manifest at '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml.apk'
[debug] [ADB] Inserting manifest '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml', src: '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk', dst: '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk'
[debug] [ADB] Unzipping '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/AndroidManifest.xml.apk' to '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T'
[debug] [ADB] Unzip successful
[ADB] Using 'aapt' from '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/aapt'
[debug] [ADB] Moving manifest
[debug] [ADB] Manifest insertion into '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' is completed
[Espresso] Repackaged espresso server ready: '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk'
[debug] [ADB] Checking app cert for /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk
[debug] [ADB] Starting '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/apksigner' with args '["verify","--print-certs","/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk"]'
[ADB] Got an error during apksigner execution: Command '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/apksigner verify --print-certs /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' exited with code 1
[ADB] apksigner stderr: DOES NOT VERIFY
[ADB] ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.SF indicates the APK is signed using APK Signature Scheme v2 but no such signature was found. Signature stripped?
[ADB] 
[debug] [ADB] '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' is not signed with debug cert
[ADB] Using 'zipalign' from '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/zipalign'
[debug] [ADB] /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' is already zip-aligned. Doing nothing
[debug] [ADB] Signing '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' with default cert
[debug] [ADB] Starting '/Users/atsushimori/Library/Android/sdk/build-tools/28.0.3/apksigner' with args '["sign","--key","/usr/local/lib/node_modules/appium/node_modules/appium-adb/keys/testkey.pk8","--cert","/usr/local/lib/node_modules/appium/node_modules/appium-adb/keys/testkey.x509.pem","/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk"]'
[debug] [ADB] Uninstalling io.appium.espressoserver.test
[debug] [ADB] Getting install status for io.appium.espressoserver.test
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.espressoserver.test'
[debug] [ADB] 'io.appium.espressoserver.test' is installed
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell am force-stop io.appium.espressoserver.test'
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 uninstall io.appium.espressoserver.test'
[debug] [ADB] 'adb uninstall io.appium.espressoserver.test' command output: Success
[ADB] io.appium.espressoserver.test was successfully uninstalled
[Espresso] Uninstalled the obsolete Espresso server package from the device under test
[debug] [ADB] Getting install status for io.appium.espressoserver.test
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys package io.appium.espressoserver.test'
[debug] [ADB] 'io.appium.espressoserver.test' is not installed
[debug] [ADB] App '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' is not installed
[Espresso] Installing Espresso Test Server apk from the target device (path: '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk')
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'ls -t -1 /data/local/tmp/appium_cache 2>&1 || echo _ERROR_''
[debug] [ADB] The count of applications in the cache: 5
[ADB] Caching the application at '/var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' to '/data/local/tmp/appium_cache/7a258aa389e555a7482e64e0be34705d6ed45f77.apk'
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell mkdir -p /data/local/tmp/appium_cache'
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 push /var/folders/vp/7r1bnmd91zq18mb6qz8zkgtc0000gn/T/io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk /data/local/tmp/appium_cache/7a258aa389e555a7482e64e0be34705d6ed45f77.apk'
[ADB] The upload of 'io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' (4.77 MB) took 0.336s
[debug] [ADB] Running '/Users/atsushimori/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm install /data/local/tmp/appium_cache/7a258aa389e555a7482e64e0be34705d6ed45f77.apk'
[ADB] The installation of 'io.appium.espressoserver.test_1.18.0_io.appium.android.apis.apk' took 8.964s
[debug] [ADB] Install command stdout: Success
[Espresso] Installed Espresso Test Server apk 

(--snip--)

[HTTP] --> POST /wd/hub/session/eaf2e6f4-bdbc-4100-885b-f2d4dabd9488/element
[HTTP] {"using":"-android viewmatcher","value":"{\"name\": \"withText\", \"args\": [\"Accessibility\"], \"class\": \"androidx.test.espresso.matcher.ViewMatchers\"}"}
[W3C (eaf2e6f4)] Driver proxy active, passing request on via HTTP proxy
[debug] [WD Proxy] Matched '/wd/hub/session/eaf2e6f4-bdbc-4100-885b-f2d4dabd9488/element' to command name 'findElement'
[debug] [WD Proxy] Proxying [POST /wd/hub/session/eaf2e6f4-bdbc-4100-885b-f2d4dabd9488/element] to [POST http://localhost:8300/session/f224bf95-600a-4e71-820c-d8cdccae7b73/element] with body: {"using":"-android viewmatcher","value":"{\"name\": \"withText\", \"args\": [\"Accessibility\"], \"class\": \"androidx.test.espresso.matcher.ViewMatchers\"}"}
[WD Proxy] Got an unexpected response with status 400: {"id":"0c40c05d-3ccd-4055-803f-202f038d4fb5","sessionId":"f224bf95-600a-4e71-820c-d8cdccae7b73","value":{"error":"invalid selector","message":"Locator strategy cannot be empty","stacktrace":"io.appium.espressoserver.lib.handlers.exceptions.InvalidSelectorException: Locator strategy cannot be empty\n\tat io.appium.espressoserver.lib.handlers.FindElement.handleInternal(FindElement.kt:36)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handleInternal(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.handlers.RequestHandler$DefaultImpls.handle(RequestHandler.kt:28)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handle(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handle(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.http.Router.route(Router.kt:217)\n\tat io.appium.espressoserver.lib.http.Server.serve(Server.kt:49)\n\tat fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:945)\n\tat fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)\n\ta...
[debug] [W3C (eaf2e6f4)] Encountered internal error running command: ProxyRequestError: Could not proxy command to remote server. Original error: 400 - {"id":"0c40c05d-3ccd-4055-803f-202f038d4fb5","sessionId":"f224bf95-600a-4e71-820c-d8cdccae7b73","value":{"error":"invalid selector","message":"Locator strategy cannot be empty","stacktrace":"io.appium.espressoserver.lib.handlers.exceptions.InvalidSelectorException: Locator strategy cannot be empty\n\tat io.appium.espressoserver.lib.handlers.FindElement.handleInternal(FindElement.kt:36)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handleInternal(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.handlers.RequestHandler$DefaultImpls.handle(RequestHandler.kt:28)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handle(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.handlers.FindElement.handle(FindElement.kt:26)\n\tat io.appium.espressoserver.lib.http.Router.route(Router.kt:217)\n\tat io.appium.espressoserver.lib.http.Server.serve(Server.kt:49)\n\tat fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:945)\n\tat fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)\n\tat java.lang.Thread.run(Thread.java:764)\n"}}
[debug] [W3C (eaf2e6f4)]     at JWProxy.proxy (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/jsonwp-proxy/proxy.js:222:13)
[debug] [W3C] Matched W3C error code 'invalid selector' to InvalidSelectorError
[HTTP] <-- POST /wd/hub/session/eaf2e6f4-bdbc-4100-885b-f2d4dabd9488/element 400 44 ms - 970


◆[Terminal log] > selenium.common.exceptions.InvalidSelectorException: Message: Locator strategy cannot be empty

 $ pytest search_context/find_by_view_matcher_tests.py
F                                                                                                                                                                                [100%]
======================================================================================= FAILURES =======================================================================================
___________________________________________________________________ FindByViewMatcherTests.test_find_single_element ____________________________________________________________________

self = <test.functional.android.search_context.find_by_view_matcher_tests.FindByViewMatcherTests testMethod=test_find_single_element>

    def test_find_single_element(self):
>       els = self.driver.find_element_by_android_view_matcher(name='withText', args=['Accessibility'], className='androidx.test.espresso.matcher.ViewMatchers')

search_context/find_by_view_matcher_tests.py:41: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../appium/webdriver/extensions/search_context/android.py:54: in find_element_by_android_view_matcher
    return self.find_element(
../../../appium/webdriver/webdriver.py:282: in find_element
    return self.execute(RemoteCommand.FIND_ELEMENT, {
../../../../../../.pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
    self.error_handler.check_response(response)
../../../appium/webdriver/errorhandler.py:29: in check_response
    raise wde
../../../appium/webdriver/errorhandler.py:24: in check_response
    super(MobileErrorHandler, self).check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <appium.webdriver.errorhandler.MobileErrorHandler object at 0x10d67e550>
response = {'status': 400, 'value': '{"value":{"error":"invalid selector","message":"Locator strategy cannot be empty","stacktrac...tat fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)\\n\\tat java.lang.Thread.run(Thread.java:764)\\n"}}'}

(--snip--)

>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.InvalidSelectorException: Message: Locator strategy cannot be empty

@mykola-mokhnach
Copy link
Contributor

@ki4070ma Did you install appium@beta?

@ki4070ma
Copy link
Collaborator Author

ki4070ma commented Feb 8, 2020

@mykola-mokhnach
Thanks for your quick response, I haven't checked below file.
Now viewmatcher works with appium v1.16.0-beta3.

v1.16.0 -> "appium-espresso-driver": "^1.18.0",
https://github.com/appium/appium/blob/v1.16.0/package.json#L47

v1.16.0-beta3 -> "appium-espresso-driver": "^1.0.0"
https://github.com/appium/appium/blob/v1.16.0-beta.3/package.json#L47

@ki4070ma ki4070ma changed the title [wip] feat: Add viewmatcher feat: Add viewmatcher Feb 9, 2020

# androidx.test.espresso.AmbiguousViewMatcherException:
# 'with text: a string containing "Access"' matches multiple views in the hierarchy.
def test_find_multiple_elements(self):
Copy link
Collaborator Author

@ki4070ma ki4070ma Feb 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Notes] This is reason not to have find_elements_by_android_view_matcher.

@ki4070ma ki4070ma merged commit f2bf259 into appium:master Feb 9, 2020
@ki4070ma ki4070ma deleted the add-viewmatcher branch February 9, 2020 13:26
ki4070ma added a commit that referenced this pull request Apr 26, 2020
* Update pytest-cov requirement from ~=2.6 to ~=2.8 (#489)

Updates the requirements on [pytest-cov](https://github.com/pytest-dev/pytest-cov) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v2.6.0...v2.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update autopep8 requirement from ~=1.4 to ~=1.5 (#490)

Updates the requirements on [autopep8](https://github.com/hhatto/autopep8) to permit the latest version.
- [Release notes](https://github.com/hhatto/autopep8/releases)
- [Commits](hhatto/autopep8@v1.4...v1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update tox-travis requirement from ~=0.11 to ~=0.12 (#491)

Updates the requirements on [tox-travis](https://github.com/tox-dev/tox-travis) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox-travis/releases)
- [Changelog](https://github.com/tox-dev/tox-travis/blob/master/HISTORY.rst)
- [Commits](tox-dev/tox-travis@0.11...0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update tox requirement from ~=3.6 to ~=3.14 (#494)

Updates the requirements on [tox](https://github.com/tox-dev/tox) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/master/docs/changelog.rst)
- [Commits](tox-dev/tox@3.6.0...3.14.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* chore: Fix find_by_images_tests.py (#495)

* chore: Fix find_by_images_tests.py

* Add installation opencv4nodejs

* Fix typo

* Add taking screen record to find_by_image_test

* Fix errors on the emulator

* Remove unused imports

* feat: Add viewmatcher (#480)

* Add android view matcher as strategy locator

* Add docstring

* Add functional test

* Remove find_elements_by_android_data_matcher

* Fix docstring

* tweak docstring

* Bump 0.50

* Update changelog for 0.50

* Fix flaky functional tests (#473)

* Run all tests

* Fix apk file path

* Skip find_element_by_image test cases

* Skip context switching test

* Skip multi tap test on CI

* Change strategy for waiting element

* Add functions for same steps

* Restore unexpected changes

* Fix touch_action_tests

* Fix

* Fix
Fix test_driver_swipe

* fix

* Create _move_to_[target_view]

* [test_driver_swipe] Add wait

* feat: Add idempotency key header to create session requests (#514)

* feat: Override send_keys without file upload function (#515)

* add send_keys_direct

* override send_keys

* tune

* add unittest instead of functional test

* tweak syntax

* Bump 0.51

* Update changelog for 0.51

* test: Fix test_clear flaky functional test (#519)

* test: Add unit test for set_value (setImmediateValue) (#518)

* chore: Fix int - str comparison error in ios desired capabilities (#517)

if number >= PytestXdistWorker.COUNT:

TypeError: '>=' not supported between instances of 'int' and 'str'

2. Updated test case path and iPhone model in Readme file

* fix: Handling of dictionary-values in WebElement.get_attribute() (#521)

* Bump 0.52

* Update changelog for 0.52

* Fix mypy error

* tweak

* Add wait to test

* Skip tap_twice test

* review comments

* Remove unnecessary import

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>
Co-authored-by: Mykola Mokhnach <mokhnach@gmail.com>
Co-authored-by: Nrupesh Patel <nrupesh.patel2912@gmail.com>
Co-authored-by: Venkatesh <venkatesh@poshmark.com>
Co-authored-by: Hannes Hauer <hanneshauer@beeware.at>
ki4070ma added a commit that referenced this pull request Apr 30, 2020
* Drop py2 support (#478)

* Drop py2 support

* Support 3.7+

* Add explicit type declarations (#482)

* Fixed mypy warning: touch_action.py

* Fixed mypy warning: multi_action.py

* Fixed mypy warning: extensions/android

* Fixed mypy warning: extensions/search_context

* Updated

* Revert some changes to run unit test

* Review comments

* Updates

* Updates

* Add mypy check to ci.sh

* Add mypy to Pipfile

* Updates

* Update README

* Revert unexpected changes

* Updates Dict

* Revert unexpected changes

* Updates

* Review comments

* Review comments

* tweak

* Restore and modify changes

* Fix wrong return type

* Add comments

* Revert unexpected changes

* Fix mypy error

* updates

* Add mypy to pre-commit (#485)

* chore: Applied some py3 formats (#486)

* Removed unused import

* Removed unnecessary codes

* Applied f'' format instead ''.format()

* Fixes

* tweak

* chore: Fix mypy errors under test folder (#487)

* Fix mypy errors under test folder

* Add mypy check for test folder to pre-commit

* Add mypy check to ci

* chore: Remove unittest dependency (#488)

* Removed unnecessary codes from calling super

* Removed unittest dependency

* Upgrade the dependencies to the latest

* Removed unused args

* Review comments

* Update mock requirement from ~=3.0 to ~=4.0 (#502)

Updates the requirements on [mock](https://github.com/testing-cabal/mock) to permit the latest version.
- [Release notes](https://github.com/testing-cabal/mock/releases)
- [Changelog](https://github.com/testing-cabal/mock/blob/master/CHANGELOG.rst)
- [Commits](testing-cabal/mock@3.0.0...4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Add 'from' to except (#503)

* Update pre-commit requirement from ~=1.21 to ~=2.1 (#506)

Updates the requirements on [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](pre-commit/pre-commit@v1.21.0...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* doc: Add script to generate sphinx doc  (#508)

* Add quickstart template files

* Update conf file

* Update

* Update settings

* Change project name

* Add script to generate docs

* Changed header title

* Add new line to usage section

* Add py.typed file(PEP561)

* Replace \n with new line

* tweak

* Use sphinx format for tables

* Rebase python3 branch with master (#522)

* Update pytest-cov requirement from ~=2.6 to ~=2.8 (#489)

Updates the requirements on [pytest-cov](https://github.com/pytest-dev/pytest-cov) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-cov/releases)
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-cov@v2.6.0...v2.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update autopep8 requirement from ~=1.4 to ~=1.5 (#490)

Updates the requirements on [autopep8](https://github.com/hhatto/autopep8) to permit the latest version.
- [Release notes](https://github.com/hhatto/autopep8/releases)
- [Commits](hhatto/autopep8@v1.4...v1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update tox-travis requirement from ~=0.11 to ~=0.12 (#491)

Updates the requirements on [tox-travis](https://github.com/tox-dev/tox-travis) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox-travis/releases)
- [Changelog](https://github.com/tox-dev/tox-travis/blob/master/HISTORY.rst)
- [Commits](tox-dev/tox-travis@0.11...0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update tox requirement from ~=3.6 to ~=3.14 (#494)

Updates the requirements on [tox](https://github.com/tox-dev/tox) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/master/docs/changelog.rst)
- [Commits](tox-dev/tox@3.6.0...3.14.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* chore: Fix find_by_images_tests.py (#495)

* chore: Fix find_by_images_tests.py

* Add installation opencv4nodejs

* Fix typo

* Add taking screen record to find_by_image_test

* Fix errors on the emulator

* Remove unused imports

* feat: Add viewmatcher (#480)

* Add android view matcher as strategy locator

* Add docstring

* Add functional test

* Remove find_elements_by_android_data_matcher

* Fix docstring

* tweak docstring

* Bump 0.50

* Update changelog for 0.50

* Fix flaky functional tests (#473)

* Run all tests

* Fix apk file path

* Skip find_element_by_image test cases

* Skip context switching test

* Skip multi tap test on CI

* Change strategy for waiting element

* Add functions for same steps

* Restore unexpected changes

* Fix touch_action_tests

* Fix

* Fix
Fix test_driver_swipe

* fix

* Create _move_to_[target_view]

* [test_driver_swipe] Add wait

* feat: Add idempotency key header to create session requests (#514)

* feat: Override send_keys without file upload function (#515)

* add send_keys_direct

* override send_keys

* tune

* add unittest instead of functional test

* tweak syntax

* Bump 0.51

* Update changelog for 0.51

* test: Fix test_clear flaky functional test (#519)

* test: Add unit test for set_value (setImmediateValue) (#518)

* chore: Fix int - str comparison error in ios desired capabilities (#517)

if number >= PytestXdistWorker.COUNT:

TypeError: '>=' not supported between instances of 'int' and 'str'

2. Updated test case path and iPhone model in Readme file

* fix: Handling of dictionary-values in WebElement.get_attribute() (#521)

* Bump 0.52

* Update changelog for 0.52

* Fix mypy error

* tweak

* Add wait to test

* Skip tap_twice test

* review comments

* Remove unnecessary import

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>
Co-authored-by: Mykola Mokhnach <mokhnach@gmail.com>
Co-authored-by: Nrupesh Patel <nrupesh.patel2912@gmail.com>
Co-authored-by: Venkatesh <venkatesh@poshmark.com>
Co-authored-by: Hannes Hauer <hanneshauer@beeware.at>

* chore: Update readme and gitchangelog section role (#524) (#525)

* chore: tweak changelog filter

* address stoping Python 2 support

* 2 instead of 2.0...

* tweak readme

* Revert some unexpected changes

* review comments

* Changed bound for TypeVar

* Fix crashing ci

* Remove beta

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Kazuaki Matsuo <fly.49.89.over@gmail.com>
Co-authored-by: Mykola Mokhnach <mokhnach@gmail.com>
Co-authored-by: Nrupesh Patel <nrupesh.patel2912@gmail.com>
Co-authored-by: Venkatesh <venkatesh@poshmark.com>
Co-authored-by: Hannes Hauer <hanneshauer@beeware.at>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants