AirtestProject / AirtestProject/Poco

多台ios设备连接计算机时,对更早连接计算机的ios设备执行UnityPoco的代码,UnityPoco会直接报错

Abierto
#412 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
2k
Forks
341
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**描述问题bug**
多台ios设备连接计算机时,对更早连接计算机的ios设备执行UnityPoco的代码,UnityPoco会直接报错

例如:A和B是两台iPhone,只有A连接计算机,在A上执行自动化脚本,UnityPoco正常执行;再将B连接到计算机,此时重新在A上执行自动化脚本,UnityPoco报错;B拔掉后,在A上执行自动化脚本又能够成功

执行的脚本:
(脚本执行前手机上已有一个unity开发的游戏开启)
```
from poco.drivers.unity3d import UnityPoco

poco_Unity = UnityPoco()
poco_Unity("ServerBtn").click()
```
报错:
```
Traceback (most recent call last):
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/airtest/cli/runner.py", line 65, in runTest
six.reraise(*sys.exc_info())
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/six.py", line 703, in reraise
raise value
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/airtest/cli/runner.py", line 61, in runTest
exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
File "/Users/mtl/projects/test/dragtest.air/dragtest.py", line 8, in
poco_Unity("ServerBtn").click()
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 23, in wrapped
return func(proxy, *args, **kwargs)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 332, in click
pos_in_percentage = self.get_position(focus)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 72, in wrapped
return func(proxy, *args, **kwargs)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 613, in get_position
pos = self.attr('pos')
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 39, in wrapped
return func(self, *args, **kwargs)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 734, in attr
nodes = self._do_query(multiple=False)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/proxy.py", line 872, in _do_query
self._nodes = self.poco.agent.hierarchy.select(self.query, multiple)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/freezeui/hierarchy.py", line 90, in select
return self.selector.select(query, multiple)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/sdk/Selector.py", line 77, in select
return self.selectImpl(cond, multiple, self.getRoot(), 9999, True, True)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/sdk/Selector.py", line 71, in getRoot
return self.dumper.getRoot()
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/freezeui/hierarchy.py", line 35, in getRoot
root = Node(self.dumpHierarchy())
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/utils/simplerpc/utils.py", line 13, in new_func
ret, err = cb.wait(timeout=30)
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/utils/simplerpc/simplerpc.py", line 74, in wait
self.agent.update()
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/utils/simplerpc/rpcclient.py", line 64, in update
data = self.conn.recv()
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/utils/simplerpc/transport/tcp/main.py", line 36, in recv
msg_bytes = self.c.recv()
File "/Users/mtl/projects/venv_py3/lib/python3.7/site-packages/poco/utils/simplerpc/transport/tcp/safetcp.py", line 39, in recv
trunk = self.sock.recv(size)
ConnectionResetError: [Errno 54] Connection reset by peer
```

**复现步骤**
1. 手机A连接到电脑,对手机A启动iOS-Tagent
2. iproxy 设置代理
3. 在A上执行脚本,此时顺利执行
4. 手机B连接电脑(不需要启动iOS-Tagent等其它操作)
5. 在A上执行脚本,此时UnityPoco报错

**python 版本:** `python 3.7.9`

**poco 版本:** `1.0.79`

**设备:**
- 型号: iPhone XS
- 系统: iOS 13.3

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.