AirtestProject / AirtestProject/Poco

脚本长时间运行后,poco调用java代码出错,报错:hrpc.exceptions.RpcRemoteException: java.lang.IndexOutOfBoundsException

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

説明

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

**(重要!问题分类)**
* 控件识别、树状结构、poco库报错

**描述问题bug**

编写的脚本任务是爬取评论,当脚本长时间执行的时候,airtest会报RpcRemoteException,短时间执行不会出错。
```
======================================================================
ERROR: runTest (app.widgets.code_runner.ide_launcher.AirtestIDECase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "airtest\cli\runner.py", line 65, in runTest
File "site-packages\six.py", line 693, in reraise
File "airtest\cli\runner.py", line 61, in runTest
File "D:\airtest\airtestProject\vivoComment.air\vivoComment.py", line 40, in
if (mynode.offspring("com.bbk.appstore:id/comment_user").exists() and
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\proxy.py", line 72, in wrapped
return func(proxy, *args, **kwargs)
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\proxy.py", line 774, in exists
return self.attr('visible')
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\proxy.py", line 39, in wrapped
return func(self, *args, **kwargs)
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\proxy.py", line 734, in attr
nodes = self._do_query(multiple=False)
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\proxy.py", line 872, in _do_query
self._nodes = self.poco.agent.hierarchy.select(self.query, multiple)
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\utils\retry.py", line 15, in wrapped
return func(*args, **kwargs)
File "D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\poco\utils\hrpc\hierarchy.py", line 33, in select
return self.selector.select(query, multiple)
File "hrpc\object_proxy.py", line 92, in __call__
File "hrpc\client.py", line 81, in evaluate
hrpc.exceptions.RpcRemoteException: java.lang.IndexOutOfBoundsException:

|-- Remote Traceback --|

java.lang.IndexOutOfBoundsException
at java.util.LinkedList.get(LinkedList.java:519)
at com.netease.open.libpoco.sdk.Selector.selectImpl(Selector.java:93)
at com.netease.open.libpoco.sdk.Selector.selectImpl(Selector.java:66)
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:818)

|-- Remote Traceback end --|

----------------------------------------------------------------------
Ran 1 test in 861.010s

FAILED (errors=1)
[02:05:03][DEBUG] D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\airtest\core\android\static\adb\windows\adb.exe -P 5037 -s f709dc0c7d23 forward --remove tcp:16150
[02:05:03][DEBUG] D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\airtest\core\android\static\adb\windows\adb.exe -P 5037 -s f709dc0c7d23 forward --remove tcp:17360
[02:05:03][DEBUG] D:\airtest\AirtestIDE_2020-01-21_py3_win64\AirtestIDE_2020-01-21_py3_win64\airtest\core\android\static\adb\windows\adb.exe -P 5037 -s f709dc0c7d23 forward --remove tcp:13708
[Finished]

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

```

**复现步骤**
1. 点击运行脚本
2.长时间运行后就会出错,大约15分钟开始报错并停止执行脚本,此时大约爬取到200条评论信息。

**预期效果**
一直执行到爬取到所有的评论为止,大约7万余条

**相关截图**
(贴出遇到问题时的截图内容,如果有的话)
![批注 2020-06-30 150900](https://user-images.githubusercontent.com/15981811/86094911-baa5ec00-bae3-11ea-93eb-fcbbb1c74a41.png)

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

**poco 版本:** `1.0.79`

**设备:** 小米
- 型号: [redmi 3s]
- 系统: [Android 6.0.1]

**其他相关环境信息**
(windows上运行,无论是airtest ide还是pychram,长时间运行脚本,都会报同样的错误)

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

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

評価

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

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

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