AirtestProject / AirtestProject/Poco

Poco元素查询耗时很长

Abierto
#559 10 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
2k
Forks
341
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**问题分类**
控件识别、树状结构

**描述问题bug**
在 Poco **1.0.87** 版本后,某些场景出现查询节点耗时很慢的问题。

```
# 例子运行在AirTest中,直接python触发效果也等同,因此排除AirTest导致。
from airtest.core.api import *
import json
import inspect
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

auto_setup(__file__)

last_time = time.time()
ui = poco.agent.hierarchy.dump()
print("poco获取dump耗时" + str(time.time() - last_time))

last_time = time.time()
poco("add_passenger_button").exists()
print("poco查询元素存在耗时" + str(time.time() - last_time))

last_time = time.time()
poco("add_passenger_button").click()
print("poco点击耗时" + str(time.time() - last_time))

# 打印的结果
============================================================

[Start running..]
save log in '/var/folders/1x/65cvlf_d715ct5kzqtbnzdqm0000gn/T/AirtestIDE/scripts/5abc0f154388cfbfe093f75f50d61f56'
poco_target
/Applications/AirtestIDE.app/Contents/MacOS/poco/drivers/android/uiautomation.py
poco获取dump耗时0.5019688606262207
poco查询元素存在耗时10.28783893585205
[12:18:34][INFO] update orientation None->0
poco点击耗时14.770931243896484
----------------------------------------------------------------------
Ran 1 test in 28.339s

OK
[Finished]

============================================================

```

```
#耗时正常日志
============================================================

[Start running..]
save log in '/var/folders/1x/65cvlf_d715ct5kzqtbnzdqm0000gn/T/AirtestIDE/scripts/5abc0f154388cfbfe093f75f50d61f56'
poco获取dump耗时1.6259679794311523
poco查询元素存在耗时0.3818488121032715
[12:31:51][INFO] update orientation None->0
poco点击耗时4.8794450759887695
----------------------------------------------------------------------
Ran 1 test in 9.681s

OK
[Finished]

============================================================

```

**复现步骤**
1. 降低Poco版本到 **1.0.84** 此问题没有出现。
2. 继续测试发现,将Poco的版本保持在1.0.84(低版本),Poc Service 的APK的版本升级到 1.0.45(高版本),耗时变得很长。
3. 将Poco的版本保持在1.0.87(高版本),Poc Service 的APK的版本降低到 1.0.43(低版本),耗时正常。

由此推断,是Poco Service Apk升级后,导致某些场景查询exist 和 click事件耗时很长。

**预期效果**
希望查询耗时正常。

**相关截图**
(贴出遇到问题时的截图内容,如果有的话)

**python 版本:** `Python 3.8.9`

**poco 版本:** `1.0.87`

**设备:**
- 型号: [三星s8+]
- 系统: [eAndroid 9]
- (别的信息)

**其他相关环境信息**
排除平台和手机特性导致。测试了不同机型的手机,和所有平台的环境,均能稳定复现。

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.