AirtestProject / AirtestProject/Poco

list(poco())某元素集(list>1),list[1]存在,但list[1].parent()元素出现异常IndexOutOfBoundsException

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

説明

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

**(重要!问题分类)**
* 图像识别相关问题 -> https://github.com/AirtestProject/Airtest/issues
* 测试开发环境AirtestIDE使用问题 -> https://github.com/AirtestProject/AirtestIDE/issues
* 控件识别、树状结构、poco库报错 -> 此仓库

**描述问题bug**
(简洁清晰得概括一下遇到的问题是什么。或者是报错的traceback信息。)
想根据某元素id,遍历取其父元素的兄弟,但发现list[下标大于0时].parent()会出现IndexOutOfBoundsException异常

hrpc.exceptions.RpcRemoteException: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

|-- Remote Traceback --|

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.LinkedList.checkElementIndex(LinkedList.java:565)
at java.util.LinkedList.get(LinkedList.java:486)
at com.netease.open.libpoco.sdk.Selector.selectImpl(Selector.java:93)
at com.netease.open.libpoco.sdk.Selector.selectImpl(Selector.java:98)
at com.netease.open.libpoco.sdk.Selector.select(Selector.java:37)
at java.lang.reflect.Method.invoke(Native Method)
at com.netease.open.hrpc.backend.RpcServer.onRequest(RpcServer.java:171)
at com.netease.open.hrpc.backend.RpcServer.serve(RpcServer.java:57)
at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:840)
at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:189)
at java.lang.Thread.run(Thread.java:929)

|-- Remote Traceback end --|

**复现步骤**
1. a=list(poco("id_member_point_pointPage_exchange_toExchange"))
print(a)
能获取到元素共5个:[UIObjectProxy of "id_member_point_pointPage_exchange_toExchange[0]", UIObjectProxy of "id_member_point_pointPage_exchange_toExchange[1]", UIObjectProxy of "id_member_point_pointPage_exchange_toExchange[2]", UIObjectProxy of "id_member_point_pointPage_exchange_toExchange[3]", UIObjectProxy of "id_member_point_pointPage_exchange_toExchange[4]"]
2. 尝试list[0]取元素&list[0].parent()取元素正常
print(poco("id_member_point_pointPage_exchange_toExchange")[0].exists())
print(poco("id_member_point_pointPage_exchange_toExchange")[0].parent().exists())
均能成功返回均为True
3. 尝试list[下标1-4]取元素,正常&list[下标1-4].parent()取元素,异常报错
print(poco("id_member_point_pointPage_exchange_toExchange")[1].exists()) 能正常返回True
print(poco("id_member_point_pointPage_exchange_toExchange")[1].parent().exists()) 出现异常,报错IndexOutOfBoundsException

**预期效果**
(预期想要得到什么、见到什么)
期望能正常取到list[下标大于0]的父亲&其兄弟&子元素

**相关截图**
![image](https://user-images.githubusercontent.com/13377528/132484014-91d3f57d-5bea-45f9-a173-8fb84ed14298.png)

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

**poco 版本:** `1.0.69`
> poco版本通过`pip freeze`可以命令可以查到

**设备:**
- 型号: HUAWEI nova8/oppo r11
- 系统: HarmonyOS 2.0/android 8.1
- (别的信息)

**其他相关环境信息**
暂无,目前airtestIDE中编译均会报错

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

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

評価

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

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

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