AirtestProject / AirtestProject/Poco

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

Đang mở
#412 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
2k
Fork
341
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.