AirtestProject / AirtestProject/Airtest

脚本循环使用exists进行查找,概率脚本卡主的情况

Abierto
#655 8 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
9.6k
Forks
1.5k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

(请尽量按照下面提示内容填写,有助于我们快速定位和解决问题,感谢配合。否则直接关闭。)

**(重要!问题分类)**
* 测试开发环境AirtestIDE使用问题 -> https://github.com/AirtestProject/AirtestIDE/issues
* 控件识别、树状结构、poco库报错 -> https://github.com/AirtestProject/Poco/issues
* 图像识别、设备控制相关问题 -> 按下面的步骤

**描述问题bug**
脚本循环使用exists进行查找,概率脚本卡主的情况
```
[07:43:14][DEBUG] find_best_result() run time is 0.11 s.
[07:43:14][DEBUG] try match with BRISKMatching
[07:43:15][DEBUG] [BRISK] threshold=0.95, result={'result': [319, 223], 'rectangle': [(50, 152), (50, 293), (587, 293), (587, 152)]
, 'confidence': 0.7063780277967453}
[07:43:15][DEBUG] find_best_result() run time is 0.39 s.
[07:43:15][DEBUG] match result: None
[07:43:15][INFO] Try finding:
Template(C:\Users\Administrator\Desktop\worst1.0.0.air\tpl1575167306873.png)
[07:57:15][DEBUG] orientationWatcher has ended
Traceback (most recent call last):
File "F:\AirtestIDE_2019-09-11_py3_win64\sample\custom_launcher.py", line 46, in
run_script(args, CustomCase)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\cli\runner.py", line 138, in run_script
result = unittest.TextTestRunner(verbosity=0).run(suite)
File "D:\ProgramData\Anaconda3\lib\unittest\runner.py", line 176, in run
test(result)
File "D:\ProgramData\Anaconda3\lib\unittest\suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "D:\ProgramData\Anaconda3\lib\unittest\suite.py", line 122, in run
test(result)
File "D:\ProgramData\Anaconda3\lib\unittest\case.py", line 653, in __call__
return self.run(*args, **kwds)
File "D:\ProgramData\Anaconda3\lib\unittest\case.py", line 605, in run
testMethod()
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\cli\runner.py", line 61, in runTest
exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
File "C:\Users\Administrator\Desktop\worst1.0.0.air\worst1.0.0.py", line 135, in
t2_check_and_get()
File "C:\Users\Administrator\Desktop\worst1.0.0.air\worst1.0.0.py", line 127, in t2_check_and_get
catch_exception()
File "C:\Users\Administrator\Desktop\worst1.0.0.air\worst1.0.0.py", line 33, in catch_exception
exist = exists(Template(r"tpl1575167306873.png", threshold=0.9, target_pos=6, record_pos=(0.182, -0.829), resolution=(900, 1600)))
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\utils\logwraper.py", line 78, in wrapper
res = f(*args, **kwargs)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\api.py", line 411, in exists
pos = loop_find(v, timeout=ST.FIND_TIMEOUT_TMP)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\utils\logwraper.py", line 78, in wrapper
res = f(*args, **kwargs)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\cv.py", line 59, in loop_find
screen = G.DEVICE.snapshot(filename=None)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\android.py", line 218, in snapshot
screen = self.minicap.get_frame_from_stream()
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\minicap.py", line 24, in wrapper
return func(inst, *args, **kwargs)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\minicap.py", line 343, in get_frame_from_stream
return six.next(self.frame_gen)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\minicap.py", line 282, in _get_stream
frame_data = s.recv(frame_size)
File "D:\ProgramData\Anaconda3\lib\site-packages\airtest\utils\safesocket.py", line 30, in recv
trunk = self.sock.recv(min(size-len(self.buf), 4096))
KeyboardInterrupt
[07:57:15][DEBUG] D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -s 192.168.31.63:5555 for
ward --remove tcp:19717
[07:57:16][DEBUG] D:\ProgramData\Anaconda3\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -s 192.168.31.63:5555 for
ward --remove tcp:15716

```

**相关截图**
![image](https://user-images.githubusercontent.com/10250772/71453691-903b4500-27c7-11ea-9366-e3101d8cf28e.png)

**复现步骤**
我把图片查找时间设置的很短,不知道是不是这个原因
因为是循环查找,所以我把图片超时时间设置成1秒,然后只找一次,把TMP的时间设置成0.1秒了
ST.FIND_TIMEOUT = 1
ST.FIND_TIMEOUT_TMP = 0.1

**预期效果**
不知道出现了什么问题,该如何规避这种问题

**python 版本:** `python3.5`

**airtest 版本:** `1.1.1`

**设备:**
- 型号: vivo x9s
- 系统: Android 8.1

**其他相关环境信息**

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.