AirtestProject / AirtestProject/Poco

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

Aperta
#412 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Python
Stelle
2k
Fork
341
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

**描述问题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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.