openatx / uiautomator2

Android Uiautomator2 Python Wrapper
MIT License
6.26k stars 1.36k forks source link

uiautomator2.GatewayError #928

Closed ponponon closed 2 months ago

ponponon commented 7 months ago
cryptography
fastapi
kombu
loguru
lxml
mock
pydantic<2.0.0
python-dotenv
PyYAML
requests
typing-extensions
scrapy
uiautomator2==2.16.21
opencv-python
pika

six
requests>=2
whichcraft 

logzero
progress~=1.3
retry~=0.9
adbutils>=1.2.3
Deprecated~=1.2.6

# Not supported in QPython
Pillow
lxml>=4.3
cached-property>=1.5.1,<2.0
packaging

#websocket-client

filelock>=3.0.12,<4.0
import uiautomator2 as u2
import subprocess
from loguru import logger

phone_address = '192.168.35.66:38577'

# 连接到设备
device = u2.connect(phone_address)  # 你也可以使用USB连接,不过需要先通过adb连接到设备
logger.debug(device.info)
─➤  python3 -m uiautomator2 init                                           
[I 231213 13:14:24 init:156] uiautomator2 version: 2.16.21
[I 231213 13:14:24 init:373] Install minicap, minitouch
[D 231213 13:14:24 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/minitouch-f7a806902f/minitouch
[D 231213 13:14:24 init:238] Push to /data/local/tmp/minitouch:0755
[I 231213 13:14:24 init:379] Android R (sdk:30) has no minicap resource
[D 231213 13:14:24 init:256] apk-debug package-info: None
[D 231213 13:14:24 init:257] apk-debug-test package-info: None
[I 231213 13:14:24 init:386] Install com.github.uiautomator, com.github.uiautomator.test 2.3.3
[D 231213 13:14:24 init:167] Shell: ('pm', 'uninstall', 'com.github.uiautomator')
[D 231213 13:14:24 init:167] Shell: ('pm', 'uninstall', 'com.github.uiautomator.test')
[D 231213 13:14:24 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/app-uiautomator.apk-d3f17174fb/app-uiautomator.apk
[D 231213 13:14:24 init:238] Push to /data/local/tmp/app-uiautomator.apk:0644
[D 231213 13:14:25 init:167] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator.apk')
[I 231213 13:14:25 init:331] - app-uiautomator.apk installed
[D 231213 13:14:25 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/app-uiautomator-test.apk-652bf9e13c/app-uiautomator-test.apk
[D 231213 13:14:25 init:238] Push to /data/local/tmp/app-uiautomator-test.apk:0644
[D 231213 13:14:25 init:167] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator-test.apk')
[I 231213 13:14:25 init:331] - app-uiautomator-test.apk installed
[D 231213 13:14:25 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--stop')
[D 231213 13:14:26 init:295] Real version: [0, 10, 0], Expect version: [0, 10, 0]
[D 231213 13:14:26 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--nouia', '-d', '--addr', '127.0.0.1:7912')
[I 231213 13:14:26 init:350] Check atx-agent version
[D 231213 13:14:26 init:359] Forward: local:tcp:60980 -> remote:tcp:7912
[D 231213 13:14:26 init:362] atx-agent version 
[D 231213 13:14:26 init:366] device wlan ip: 
Successfully init AdbDevice(serial=192.168.35.66:38577)
(wechatimagesearch) ╭─ponponon@MBP13ARM ~/Desktop/code/work/wechatimagesearch  ‹master*› 
╰─➤  python -u "/Users/ponponon/Desktop/code/work/wechatimagesearch/main.py"
[D 231213 13:14:30 __init__:660] [pid:10649] [192.168.35.66:38577] kill process(ps): uiautomator
[D 231213 13:14:30 __init__:391] [pid:10649] [192.168.35.66:38577] Install app-uiautomator.apk
[D 231213 13:14:31 __init__:391] [pid:10649] [192.168.35.66:38577] Install app-uiautomator-test.apk
[D 231213 13:14:32 __init__:681] [pid:10649] [192.168.35.66:38577] uiautomator-v2 is starting ... left: 40.0s
[D 231213 13:14:33 __init__:681] [pid:10649] [192.168.35.66:38577] uiautomator-v2 is starting ... left: 38.9s
[I 231213 13:14:33 __init__:625] [pid:10649] [192.168.35.66:38577] restart-uiautomator since "uiautomator2.GatewayError(gateway error, time used 0.0s)"
[D 231213 13:14:33 __init__:660] [pid:10649] [192.168.35.66:38577] kill process(ps): uiautomator
[D 231213 13:14:34 __init__:391] [pid:10649] [192.168.35.66:38577] Install app-uiautomator.apk
[D 231213 13:14:34 __init__:391] [pid:10649] [192.168.35.66:38577] Install app-uiautomator-test.apk
[D 231213 13:14:35 __init__:737] [pid:10649] [192.168.35.66:38577] grant permissions
[D 231213 13:14:35 __init__:681] [pid:10649] [192.168.35.66:38577] uiautomator-v2 is starting ... left: 40.0s
[D 231213 13:14:36 __init__:681] [pid:10649] [192.168.35.66:38577] uiautomator-v2 is starting ... left: 38.9s
Traceback (most recent call last):
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 486, in _jsonrpc_retry_call
    return self._jsonrpc_call(*args, **kwargs)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 518, in _jsonrpc_call
    raise GatewayError(
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 "/Users/ponponon/Desktop/code/work/wechatimagesearch/main.py", line 11, in <module>
    logger.debug(device.info)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 448, in info
    return self.jsonrpc.deviceInfo(http_timeout=10)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 479, in __call__
    return self.server._jsonrpc_retry_call(self.method, params,
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 488, in _jsonrpc_retry_call
    self.reset_uiautomator(str(e))  # uiautomator可能出问题了,强制重启一下
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 650, in reset_uiautomator
    return self.reset_uiautomator(reason=reason,
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 650, in reset_uiautomator
    return self.reset_uiautomator(reason=reason,
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.10/site-packages/uiautomator2/__init__.py", line 617, in reset_uiautomator
    raise GatewayError(
TypeError: GatewayError.__init__() takes 3 positional arguments but 5 were given

图片

图片

─➤  python --version                                                                                                                                                                                                                                                    1 ↵
Python 3.10.13
图片
ponponon commented 7 months ago

问题解决了,原因该是的小米,不插 sim 卡就禁止了 usb 安装。插上 sim 卡,开启 usb 调试就好了

─➤  python -u "/Users/ponponon/Desktop/code/work/wechatimagesearch/main.py"                                                                                                                                                                                             1 ↵
[W 231213 14:09:07 __init__:218] [pid:17155] atx-agent has something wrong, auto recovering
[I 231213 14:09:07 __init__:357] [pid:17155] [192.168.35.66:39415] device reconnecting, time left(3.0s)
[D 231213 14:09:07 __init__:317] [pid:17155] [192.168.35.66:39415] device 192.168.35.66:39415 is online
[I 231213 14:09:08 init:156] uiautomator2 version: 2.16.21
[D 231213 14:09:08 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--stop')
[D 231213 14:09:08 init:295] Real version: [0, 10, 0], Expect version: [0, 10, 0]
[D 231213 14:09:08 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--nouia', '-d', '--addr', '127.0.0.1:7912')
[I 231213 14:09:08 init:350] Check atx-agent version
[D 231213 14:09:08 init:359] Forward: local:tcp:59798 -> remote:tcp:7912
[D 231213 14:09:08 init:362] atx-agent version 
[D 231213 14:09:08 init:366] device wlan ip: 
Traceback (most recent call last):
  File "/Users/ponponon/Desktop/code/work/wechatimagesearch/main.py", line 11, in <module>
    logger.debug(device.info)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.9/site-packages/uiautomator2/__init__.py", line 448, in info
    return self.jsonrpc.deviceInfo(http_timeout=10)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.9/site-packages/uiautomator2/__init__.py", line 479, in __call__
    return self.server._jsonrpc_retry_call(self.method, params,
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.9/site-packages/uiautomator2/__init__.py", line 486, in _jsonrpc_retry_call
    return self._jsonrpc_call(*args, **kwargs)
  File "/Users/ponponon/.local/share/virtualenvs/wechatimagesearch-ut6SlEe8/lib/python3.9/site-packages/uiautomator2/__init__.py", line 524, in _jsonrpc_call
    raise BaseError(data, res.status_code, res.text,
uiautomator2.exceptions.BaseError: ('{"jsonrpc": "2.0", "id": "b75a3d44ef0927e7b964ca30d8edfc84", "method": "deviceInfo", "params": {}}', 503, '', 'HTTP Return code is not 200', '')
(wechatimagesearch) ╭─ponponon@MBP13ARM ~/Desktop/code/work/wechatimagesearch  ‹master*› 
╰─➤  python3 -m uiautomator2 init                                                                                                                                                                                                                                        1 ↵
[I 231213 14:09:16 init:156] uiautomator2 version: 2.16.21
[I 231213 14:09:16 init:373] Install minicap, minitouch
[D 231213 14:09:16 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/minitouch-f7a806902f/minitouch
[D 231213 14:09:16 init:238] Push to /data/local/tmp/minitouch:0755
[I 231213 14:09:16 init:379] Android R (sdk:30) has no minicap resource
[D 231213 14:09:16 init:256] apk-debug package-info: None
[D 231213 14:09:16 init:257] apk-debug-test package-info: None
[I 231213 14:09:16 init:386] Install com.github.uiautomator, com.github.uiautomator.test 2.3.3
[D 231213 14:09:16 init:167] Shell: ('pm', 'uninstall', 'com.github.uiautomator')
[D 231213 14:09:16 init:167] Shell: ('pm', 'uninstall', 'com.github.uiautomator.test')
[D 231213 14:09:16 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/app-uiautomator.apk-d3f17174fb/app-uiautomator.apk
[D 231213 14:09:16 init:238] Push to /data/local/tmp/app-uiautomator.apk:0644
[D 231213 14:09:16 init:167] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator.apk')
[I 231213 14:09:21 init:331] - app-uiautomator.apk installed
[D 231213 14:09:21 init:59] Use cached assets: /Users/ponponon/.uiautomator2/cache/app-uiautomator-test.apk-652bf9e13c/app-uiautomator-test.apk
[D 231213 14:09:21 init:238] Push to /data/local/tmp/app-uiautomator-test.apk:0644
[D 231213 14:09:21 init:167] Shell: ('pm', 'install', '-r', '-t', '/data/local/tmp/app-uiautomator-test.apk')
[I 231213 14:09:24 init:331] - app-uiautomator-test.apk installed
[D 231213 14:09:24 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--stop')
[D 231213 14:09:25 init:295] Real version: [0, 10, 0], Expect version: [0, 10, 0]
[D 231213 14:09:25 init:167] Shell: ('/data/local/tmp/atx-agent', 'server', '--nouia', '-d', '--addr', '127.0.0.1:7912')
[I 231213 14:09:25 init:350] Check atx-agent version
[D 231213 14:09:25 init:359] Forward: local:tcp:59798 -> remote:tcp:7912
[D 231213 14:09:25 init:362] atx-agent version 
[D 231213 14:09:25 init:366] device wlan ip: 192.168.35.66
Successfully init AdbDevice(serial=192.168.35.66:39415)
(wechatimagesearch) ╭─ponponon@MBP13ARM ~/Desktop/code/work/wechatimagesearch  ‹master*› 
╰─➤  python -u "/Users/ponponon/Desktop/code/work/wechatimagesearch/main.py"
[D 231213 14:09:28 __init__:660] [pid:17224] [192.168.35.66:39415] kill process(ps): uiautomator
[D 231213 14:09:29 __init__:681] [pid:17224] [192.168.35.66:39415] uiautomator-v2 is starting ... left: 40.0s
[D 231213 14:09:30 __init__:681] [pid:17224] [192.168.35.66:39415] uiautomator-v2 is starting ... left: 39.0s
[D 231213 14:09:31 __init__:695] [pid:17224] [192.168.35.66:39415] show float window
[D 231213 14:09:32 __init__:681] [pid:17224] [192.168.35.66:39415] uiautomator-v2 is starting ... left: 37.8s
[I 231213 14:09:32 __init__:642] [pid:17224] [192.168.35.66:39415] uiautomator back to normal
2023-12-13 14:09:32.174 | DEBUG    | __main__:<module>:11 - {'currentPackageName': 'com.android.settings', 'displayHeight': 2313, 'displayRotation': 0, 'displaySizeDpX': 393, 'displaySizeDpY': 873, 'displayWidth': 1080, 'productName': 'cupid', 'screenOn': True, 'sdkInt': 33, 'naturalOrientation': True}

图片

codeskyblue commented 2 months ago

已移除相关代码