AirtestProject / AirtestProject/Poco

Poco元素查询耗时很长

オープン
#559 コメント 10 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
2k
フォーク
341
PR マージ指標
30日以内にマージされた PR はありません

説明

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

**描述问题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]
- (别的信息)

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。