#python-3.x #android-uiautomator
#python-3.x #android-uiautomator
Вопрос:
Недавно работал над автоматическим тестированием с использованием airtest и poco.Из-за того, что Android-Toast не поддерживается, я хочу использовать uiautomator2 в моем проекте тестирования.Установка, а также инициализация завершаются успешно.Но я получил:
uiautomator2.exceptions.GatewayError: uiautomator2.GatewayError(gateway error, time used 0.0s)`
когда я вызываю:
import uiautomator2 as u2
d = u2.connect_usb()
d.toast.show("uiautomator2", 3)
Полная трассировка стека:
[W 200916 11:28:57 __init__:203] atx-agent has something wrong, auto recovering
[D 200916 11:28:57 __init__:286] device 364748377d05 is online
[I 200916 11:28:58 init:155] uiautomator2 version: 2.11.3
[I 200916 11:28:58 init:352] Install minicap, minitouch
[I 200916 11:29:01 init:367] Install com.github.uiautomator, com.github.uiautomator.test 2.3.1
[I 200916 11:29:09 init:332] - app-uiautomator.apk installed
[I 200916 11:29:14 init:332] - app-uiautomator-test.apk installed
[I 200916 11:29:14 init:340] Install atx-agent 0.9.5
[I 200916 11:29:15 init:377] Check atx-agent version
Successfully init AdbDevice(serial=364748377d05)
<uiautomator2.Device object at 0x0C59D7D0>
[D 200916 11:29:17 __init__:598] kill process(ps): uiautomator
[D 200916 11:29:20 __init__:617] uiautomator-v2 is starting ... left: 40.0s
[D 200916 11:29:21 __init__:617] uiautomator-v2 is starting ... left: 39.0s
[D 200916 11:29:22 __init__:617] uiautomator-v2 is starting ... left: 38.0s
[D 200916 11:29:23 __init__:617] uiautomator-v2 is starting ... left: 37.0s
[D 200916 11:29:24 __init__:617] uiautomator-v2 is starting ... left: 35.9s
[I 200916 11:29:25 __init__:570] restart-uiautomator since "uiautomator2.GatewayError(gateway error, time used 0.0s)"
[D 200916 11:29:25 __init__:598] kill process(ps): uiautomator
[D 200916 11:29:27 __init__:652] grant permissions
[D 200916 11:29:32 __init__:617] uiautomator-v2 is starting ... left: 40.0s
[D 200916 11:29:33 __init__:617] uiautomator-v2 is starting ... left: 39.0s
[D 200916 11:29:34 __init__:617] uiautomator-v2 is starting ... left: 38.0s
[D 200916 11:29:35 __init__:617] uiautomator-v2 is starting ... left: 37.0s
[D 200916 11:29:36 __init__:617] uiautomator-v2 is starting ... left: 35.9s
Ran 1 test in 42.147s
FAILED (errors=1)
[11:29:37][DEBUG]<airtest.core.android.adb> F:pythonlibsite-packagesairtestcoreandroidstaticadbwindowsadb.exe -s 364748377d05 forward --remove tcp:14076
Error
Traceback (most recent call last):
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 441, in _jsonrpc_retry_call
return self._jsonrpc_call(*args, **kwargs)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 478, in _jsonrpc_call
(time.time() - request_start))
uiautomator2.exceptions.GatewayError: uiautomator2.GatewayError(gateway error, time used 0.0s)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:pythonlibunittestcase.py", line 59, in testPartExecutor
yield
File "F:pythonlibunittestcase.py", line 611, in run
self.setUp()
File "F:PythonPrjpycharm_airtest_iesapptestcasetestcases_qjdl.py", line 111, in setUp
d.toast.show("uiautomator2", 3)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 1201, in show
return obj.jsonrpc.makeToast(text, duration * 1000)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 435, in __call__
http_timeout)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 445, in _jsonrpc_retry_call
self.reset_uiautomator(str(e)) # uiautomator可能出问题了,强制重启一下
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 589, in reset_uiautomator
depth=depth 1)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 589, in reset_uiautomator
depth=depth 1)
File "F:pythonlibsite-packagesuiautomator2__init__.py", line 566, in reset_uiautomator
"adb shell am instrument -w -r -e debug false -e class com.github.uiautomator.stub.Stub com.github.uiautomator.test/android.support.test.runner.AndroidJUnitRunner",
OSError: [WinError adb shell am instrument -w -r -e debug false -e class com.github.uiautomator.stub.Stub com.github.uiautomator.test/android.support.test.runner.AndroidJUnitRunner] uiautomator2.GatewayError(gateway error, time used 0.0s): 'https://github.com/openatx/uiautomator2/wiki/Common-issues'
Кажется, uiautomator2 не может быть запущен.Новое в python3 и uiautomator2. Кто-нибудь может помочь?
Ответ №1:
После некоторой напряженной работы я обнаружил, что uiautomator2 просто не может работать с poco вместе.Поэтому, если вы хотите использовать их оба, остановите один, прежде чем использовать другой.