求助:Appcrawler运行过程中在某个界面卡住不动

Appium运行log如下,手机也没有死机:

[HTTP] → GET /wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/source
[HTTP] {}
[W3C (77eef1dc)] Driver proxy active, passing request on via HTTP proxy
[debug] [WD Proxy] Matched ‘/wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/source’ to command name ‘getPageSource’
[debug] [WD Proxy] Proxying [GET /wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/source] to [GET http://127.0.0.1:8200/wd/hub/session/6f5a7f2b-17e6-4335-8086-12003ddedf1b/source] with no body
[debug] [WD Proxy] Got response with status 200: {“sessionId”:“6f5a7f2b-17e6-4335-8086-12003ddedf1b”,“value”:"<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>\r\n<hierarchy index="0" class="hierarchy" rotation="0" width="1440" height="3040">\r\n <android.widget.FrameLayout index="0" package="org.mars3142.android.toaster" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1440,2678]" displayed="true">\r\n <android.widget.LinearLayout index="0" package="org.mars3142.android.toaster" class="android.widget.LinearLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1440,2678]" displayed="true">\r\n <android.widget.FrameLayout index="0" p…
[WD Proxy] Replacing sessionId 6f5a7f2b-17e6-4335-8086-12003ddedf1b with 77eef1dc-27a0-4be6-ac38-b4e6791ae48b
[HTTP] ← GET /wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/source 200 10 ms - 11846
[HTTP]
[HTTP] → GET /wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/appium/device/current_activity
[HTTP] {}
[debug] [W3C (77eef1dc)] Calling AppiumDriver.getCurrentActivity() with args: [“77eef1dc-27a0-4be6-ac38-b4e6791ae48b”]
[debug] [ADB] Getting focused package and activity
[debug] [ADB] Running ‘/home/lts99/android-sdk-linux/platform-tools/adb -P 5037 -s emulator-5554 shell dumpsys window displays’
[debug] [W3C (77eef1dc)] Responding to client with driver.getCurrentActivity() result: “.activity.MainActivity”
[HTTP] ← GET /wd/hub/session/77eef1dc-27a0-4be6-ac38-b4e6791ae48b/appium/device/current_activity 200 72 ms - 34
[HTTP]

  • 从日志看还是挺正常的
  • 如果只是界面没有动的话 可以看一下appcrawler的日志是不是在滚动
  • 因为appcrawler在运行时会有阶段性生成测试报告 做断言等操作,可能会表现为界面无效果
  • 或者可以把认为有问题的appcrawler.log日志发上来看一下 注意后缀改成txt上传哈

贴下appcrawler.log里的日志把,最后的一部分几百行看看

我这边生成的log是空的,我把运行时候的日志复制了一下:
2022-02-20 17:24:27 INFO [Crawler.185.$anonfun$waitAppLoaded$1] wait for app loaded
2022-02-20 17:24:27 INFO [Crawler.693.refreshPage] refresh page
2022-02-20 17:24:27 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium
2022-02-20 17:24:27 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success
2022-02-20 17:24:27 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>

<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,0][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,0][1440,2678]" displayed=“true”>
<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/action_bar_root” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" resource-id=“android:id/content” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.support.v4.widget.DrawerLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.support.v4.widget.DrawerLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/drawer_layout” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.view.ViewGroup index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.view.ViewGroup” text="" resource-id=“com.teinproductions.tein.pitrainer:id/toolbar” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,320]" displayed=“true”>
<android.widget.ImageButton index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageButton” text="" content-desc=“Open navigation drawer” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][224,320]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Pi” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[240,154][311,261]" displayed=“true” />
<android.support.v7.widget.LinearLayoutCompat index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.support.v7.widget.LinearLayoutCompat” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1280,96][1440,320]" displayed=“true”>
<android.widget.ImageView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageView” text="" content-desc=“More options” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1280,112][1440,304]" displayed=“true” />
</android.support.v7.widget.LinearLayoutCompat>
</android.view.ViewGroup>
<android.widget.FrameLayout index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/content” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,320][1440,2678]" displayed=“true”>
<android.widget.RelativeLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.RelativeLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,320][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/headerLayout” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,384][1376,640]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“3.” resource-id=“com.teinproductions.tein.pitrainer:id/integerPart_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,384][1152,640]" displayed=“true” />
<android.widget.ImageButton index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageButton” text="" content-desc=“restart” resource-id=“com.teinproductions.tein.pitrainer:id/refresh_button” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1152,400][1376,624]" displayed=“true” />
</android.widget.LinearLayout>
<android.widget.EditText index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.EditText” text=“Let’s see what you can do!” resource-id=“com.teinproductions.tein.pitrainer:id/input_editText” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“true” long-clickable=“true” password=“false” scrollable=“false” selected=“false” bounds="[64,640][1376,853]" displayed=“true” />
<android.widget.TableLayout index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][667,1268]" displayed=“true”>
<android.widget.TableRow index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][667,1002]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Digits:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][532,1002]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0" resource-id=“com.teinproductions.tein.pitrainer:id/digits_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,885][667,1002]" displayed=“true” />
</android.widget.TableRow>
<android.widget.TableRow index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1018][667,1135]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Errors:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1018][532,1135]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0" resource-id=“com.teinproductions.tein.pitrainer:id/errors_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,1018][667,1135]" displayed=“true” />
</android.widget.TableRow>
<android.widget.TableRow index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1151][667,1268]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Percentage:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1151][532,1268]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0%" resource-id=“com.teinproductions.tein.pitrainer:id/percentage_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,1151][667,1268]" displayed=“true” />
</android.widget.TableRow>
</android.widget.TableLayout>
</android.widget.RelativeLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.support.v4.widget.DrawerLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.widget.FrameLayout>

2022-02-20 17:24:27 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format
2022-02-20 17:24:27 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//[@package!=’’])[1]
2022-02-20 17:24:27 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:27 INFO [Crawler.711.parsePageContext] appName = com.teinproductions.tein.pitrainer
2022-02-20 17:24:27 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:27 INFO [Crawler.373.getUri] defineUrl=
2022-02-20 17:24:27 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//
[@package!=’’])[1]
2022-02-20 17:24:27 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:27 INFO [Crawler.715.parsePageContext] url=com.teinproductions.tein.pitrainer.MainActivity
2022-02-20 17:24:27 TRACE [Crawler.731.parsePageContext] urlStack=Stack(com.teinproductions.tein.pitrainer.MainActivity)
2022-02-20 17:24:27 INFO [Crawler.742.parsePageContext] currentContentHash=07c1c2e8fca64936e3c59ed80a0c60e2 lastContentHash=07c1c2e8fca64936e3c59ed80a0c60e2
2022-02-20 17:24:27 INFO [Crawler.746.parsePageContext] ui not change
2022-02-20 17:24:27 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //[contains(@text, ‘App’)]
2022-02-20 17:24:27 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0
2022-02-20 17:24:28 INFO [Crawler.185.$anonfun$waitAppLoaded$1] wait for app loaded
2022-02-20 17:24:28 INFO [Crawler.693.refreshPage] refresh page
2022-02-20 17:24:28 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium
2022-02-20 17:24:28 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success
2022-02-20 17:24:28 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] <?xml version='1.0' encoding='UTF-8' standalone='yes' ?>

<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,0][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,0][1440,2678]" displayed=“true”>
<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/action_bar_root” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.FrameLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" resource-id=“android:id/content” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.support.v4.widget.DrawerLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.support.v4.widget.DrawerLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/drawer_layout” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,2678]" displayed=“true”>
<android.view.ViewGroup index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.view.ViewGroup” text="" resource-id=“com.teinproductions.tein.pitrainer:id/toolbar” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][1440,320]" displayed=“true”>
<android.widget.ImageButton index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageButton” text="" content-desc=“Open navigation drawer” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,96][224,320]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Pi” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[240,154][311,261]" displayed=“true” />
<android.support.v7.widget.LinearLayoutCompat index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.support.v7.widget.LinearLayoutCompat” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1280,96][1440,320]" displayed=“true”>
<android.widget.ImageView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageView” text="" content-desc=“More options” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1280,112][1440,304]" displayed=“true” />
</android.support.v7.widget.LinearLayoutCompat>
</android.view.ViewGroup>
<android.widget.FrameLayout index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.FrameLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/content” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,320][1440,2678]" displayed=“true”>
<android.widget.RelativeLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.RelativeLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[0,320][1440,2678]" displayed=“true”>
<android.widget.LinearLayout index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.LinearLayout” text="" resource-id=“com.teinproductions.tein.pitrainer:id/headerLayout” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,384][1376,640]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“3.” resource-id=“com.teinproductions.tein.pitrainer:id/integerPart_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,384][1152,640]" displayed=“true” />
<android.widget.ImageButton index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.ImageButton” text="" content-desc=“restart” resource-id=“com.teinproductions.tein.pitrainer:id/refresh_button” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[1152,400][1376,624]" displayed=“true” />
</android.widget.LinearLayout>
<android.widget.EditText index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.EditText” text=“Let’s see what you can do!” resource-id=“com.teinproductions.tein.pitrainer:id/input_editText” checkable=“false” checked=“false” clickable=“true” enabled=“true” focusable=“true” focused=“true” long-clickable=“true” password=“false” scrollable=“false” selected=“false” bounds="[64,640][1376,853]" displayed=“true” />
<android.widget.TableLayout index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableLayout” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][667,1268]" displayed=“true”>
<android.widget.TableRow index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][667,1002]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Digits:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,885][532,1002]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0" resource-id=“com.teinproductions.tein.pitrainer:id/digits_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,885][667,1002]" displayed=“true” />
</android.widget.TableRow>
<android.widget.TableRow index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1018][667,1135]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Errors:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1018][532,1135]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0" resource-id=“com.teinproductions.tein.pitrainer:id/errors_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,1018][667,1135]" displayed=“true” />
</android.widget.TableRow>
<android.widget.TableRow index=“2” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TableRow” text="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1151][667,1268]" displayed=“true”>
<android.widget.TextView index=“0” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=“Percentage:” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[64,1151][532,1268]" displayed=“true” />
<android.widget.TextView index=“1” package=“com.teinproductions.tein.pitrainer” class=“android.widget.TextView” text=" 0%" resource-id=“com.teinproductions.tein.pitrainer:id/percentage_textView” checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” long-clickable=“false” password=“false” scrollable=“false” selected=“false” bounds="[532,1151][667,1268]" displayed=“true” />
</android.widget.TableRow>
</android.widget.TableLayout>
</android.widget.RelativeLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.support.v4.widget.DrawerLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.widget.FrameLayout>
</android.widget.LinearLayout>
</android.widget.FrameLayout>

2022-02-20 17:24:28 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format
2022-02-20 17:24:28 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//
[@package!=’’])[1]
2022-02-20 17:24:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:28 INFO [Crawler.711.parsePageContext] appName = com.teinproductions.tein.pitrainer
2022-02-20 17:24:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:28 INFO [Crawler.373.getUri] defineUrl=
2022-02-20 17:24:28 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//[@package!=’’])[1]
2022-02-20 17:24:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1
2022-02-20 17:24:28 INFO [Crawler.715.parsePageContext] url=com.teinproductions.tein.pitrainer.MainActivity
2022-02-20 17:24:28 TRACE [Crawler.731.parsePageContext] urlStack=Stack(com.teinproductions.tein.pitrainer.MainActivity)
2022-02-20 17:24:28 INFO [Crawler.742.parsePageContext] currentContentHash=07c1c2e8fca64936e3c59ed80a0c60e2 lastContentHash=07c1c2e8fca64936e3c59ed80a0c60e2
2022-02-20 17:24:28 INFO [Crawler.746.parsePageContext] ui not change
2022-02-20 17:24:28 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //
[contains(@text, ‘App’)]
2022-02-20 17:24:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0

它一直在重复运行

你的配置文件怎么写的,贴下看看

com.teinproductions.tein.pitrainer.txt (10.8 KB)