2023-02-20 14:37:39 INFO [AppCrawler$.326.addLogFile] ------------------------------------------------- appcrawler v2.7.4 全平台自动遍历测试工具 Q&A: https://ceshiren.com/c/opensource/appcrawler author: 思寒_seveniruby 天马 霍格沃兹测试开发学社 ------------------------------------------------- 2023-02-20 14:37:39 INFO [AppCrawler$.329.addLogFile] result directory = 20230216145140 2023-02-20 14:37:39 DEBUG [AppCrawler$.44.getGlobalEncoding] default Charset=UTF-8 2023-02-20 14:37:39 DEBUG [AppCrawler$.45.getGlobalEncoding] default file.encoding=UTF-8 2023-02-20 14:37:39 DEBUG [AppCrawler$.46.getGlobalEncoding] project directory=/Users/workspace/software 2023-02-20 14:37:39 DEBUG [Crawler.123.start] crawl config 2023-02-20 14:37:39 DEBUG [Crawler.124.start] --- capabilityDescription: "appium的capability通用配置,其中automationName代表自动化的驱动引擎,除了支持appium的\ 所有引擎外,额外增加了adb和selenium的支持" capability: deviceName: "TUP4C18C28020075" appActivity: ".view.WelcomeActivityAlias" appium: "http://127.0.0.1:4723/wd/hub" noReset: "true" appPackage: "com.xueqiu.android" fullReset: "false" waitAppLoadedTimeoutDescription: "隐式等待app加载完成的最大时间 ms" waitAppLoadedTimeout: 10000 waitAppLoadedDescription: "显式等待app加载完成的判断条件" waitAppLoaded: - given: [] when: null then: [] xpath: "//*[contains(@text, 'App')]" action: "" actions: [] times: -1 implicitlyWaitTestCaseDescription: "在测试用例执行阶段隐式等待一个控件出现的最大时间 ms" implicitlyWaitTestCase: 3000 implicitlyWaitCrawlDescription: "在遍历阶段隐式等待一个控件出现的最大时间 ms" implicitlyWaitCrawl: 0 testcaseDescription: "测试用例设置,用于遍历开始之前的一些前置操作,比如自动登录" testcase: name: "TesterHome AppCrawler" steps: - given: [] when: xpath: "//*[contains(@text,'自选')]" action: "click" actions: [] then: - "//*[contains(@text,'美股')]" xpath: "//*[contains(@text,'自选')]" action: "click" actions: [] times: -1 maxTimeDescription: "最大运行时间" maxTime: 10800 maxDepthDescription: "默认的最大深度10, 结合baseUrl可很好的控制遍历的范围" maxDepth: 10 selectedListDescription: "默认遍历列表,只有出现在这个列表里的控件范围才会被遍历" selectedList: - given: [] when: null then: [] xpath: "//*[contains(name(), 'Button')]" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10]" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10]" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[contains(name(), 'Image') and @clickable='true']" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[@clickable='true']/*[contains(name(), 'Image')]" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[contains(name(), 'Image') and @name!='']" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[contains(name(), 'Text') and @name!='' and string-length(@label)<10]" action: "" actions: [] times: 0 triggerActionsDescription: "在遍历过程中需要随时处理的一些操作,比如弹框、登录等" triggerActions: - given: [] when: null then: [] xpath: "share_comment_guide_btn" action: "" actions: [] times: 0 blackListDescription: "黑名单列表 matches风格, 默认排除内容包含2个数字的控件" blackList: - given: [] when: null then: [] xpath: ".*[0-9]{2}.*" action: "" actions: [] times: 0 firstListDescription: "优先遍历列表,同时出现在selectedList与firstList中的控件会被优先遍历" firstList: [] lastListDescription: "最后遍历列表,同时出现在selectedList与lastList中的控件会被最后遍历" lastList: - given: [] when: null then: [] xpath: "//*[@selected='true']/..//*" action: "" actions: [] times: 0 - given: [] when: null then: [] xpath: "//*[@selected='true']/../..//*" action: "" actions: [] times: 0 backButtonDescription: "后退按钮列表,默认在所有控件遍历完成后,才会最后点击后退按钮。目前具备了自动判断返回按钮的能力,默认不需要配置" backButton: - given: [] when: null then: [] xpath: "Navigate up" action: "" actions: [] times: 0 xpathAttributesDescription: "在生成一个控件的唯一定位符中应该包含的关键属性" xpathAttributes: - "name" - "label" - "value" - "resource-id" - "content-desc" - "instance" - "text" sortByAttributeDescription: "陆续根据属性进行遍历排序微调,depth表示从dom中最深层的控件开始遍历,list表示dom中列表优先,\ selected表示菜单最后遍历,这是默认规则,一般不需要改变" sortByAttribute: - "depth" - "list" - "selected" findByDescription: "默认生成控件唯一定位符的表达式风格,可选项 default|android|id|xpath,默认会自动判断是否使用android定\ 位或者ios定位" findBy: "default" baseUrlDescription: "设置一个起始点,从这个起始点开始计算深度,比如默认从登录后的界面开始计算" baseUrl: [] appWhiteListDescription: "app白名单,允许在这些app里进行遍历" appWhiteList: [] urlBlackListDescription: "url黑名单,用于排除某些页面的遍历" urlBlackList: [] urlWhiteListDescription: "url白名单,仅在这些界面内遍历" urlWhiteList: [] beforeRestartDescription: "在重启session之前做的事情" beforeRestart: [] beforeElementDescription: "在遍历每个控件之前默认执行的动作" beforeElement: - given: [] when: null then: [] xpath: "/*" action: "Thread.sleep(500)" actions: [] times: 0 afterElementDescription: "在遍历每个控件之后默认执行的动作" afterElement: [] afterElementWaitDescription: "在遍历每个控件之后默认等待的时间,用于等待新页面加载" afterElementWait: 1000 afterAllDescription: "在遍历完当前页面内的所有控件后,是否需要刷新或者滑动" afterAll: [] afterAllMaxDescription: "afterAll的最大重试次数,比如连续滑动2次都没新元素即取消" afterAllMax: 2 tagLimitMaxDescription: "相似控件最多点击几次" tagLimitMax: 2 tagAttributesDescription: "用于判断是否是相似控件的关键属性,祖先节点具备相同的属性认为是相似" tagAttributes: - "name()" - "name" - "label" - "resource-id" - "content-desc" - "id" - "name" - "tag" - "class" tagLimitDescription: "设置部分相似控件的最大遍历次数" tagLimit: - given: [] when: null then: [] xpath: "确定" action: "" actions: [] times: 1000 - given: [] when: null then: [] xpath: "取消" action: "" actions: [] times: 1000 - given: [] when: null then: [] xpath: "share_comment_guide_btn_name" action: "" actions: [] times: 1000 assertGlobalDescription: "全局断言" assertGlobal: [] suiteNameDescription: "报告中的测试套件名字可以由列表内的控件内容替换,增强报告中关键界面的辨识度" suiteName: - "//*[@selected='true']//android.widget.TextView/@text" screenshotDescription: "是否截图" screenshot: true reportTitleDescription: "报告的title" reportTitle: "" resultDirDescription: "结果目录,如果为空会自动创建对应时间戳_报名的结果目录" resultDir: "20230216145140" showCancelDescription: "是否展示跳过的控件记录" showCancel: true pluginListDescription: "插件列表,暂时禁用,太高级了,很多人不会用" Description: "。在selectedList firstList lastList等很多配置中,需要填充的是测试步骤Step类型。Step类型由given(\ 满足条件)when(条件满足的行为)then(断言)三部分组成。Step可以简化为xpath(定位表达式,支持xpath 正则 包含关系)与action(点击\ \ 输入等行为)。" pluginList: [] 2023-02-20 14:37:39 INFO [Crawler.126.start] set xpath attribute with List(name, label, value, resource-id, content-desc, instance, text) 2023-02-20 14:37:39 INFO [Crawler.130.start] set tag attribute with List(name(), name, label, resource-id, content-desc, id, name, tag, class) 2023-02-20 14:37:39 INFO [Crawler.100.$anonfun$loadPlugins$3] com.ceshiren.appcrawler.plugin.TagLimitPlugin@7e0aadd0 2023-02-20 14:37:39 INFO [Crawler.100.$anonfun$loadPlugins$3] com.ceshiren.appcrawler.plugin.ReportPlugin@21362712 2023-02-20 14:37:39 INFO [Crawler.100.$anonfun$loadPlugins$3] com.ceshiren.appcrawler.plugin.FreeMind@27eb3298 2023-02-20 14:37:39 INFO [Plugin.22.init] com.ceshiren.appcrawler.plugin.TagLimitPlugin init 2023-02-20 14:37:39 INFO [Plugin.22.init] com.ceshiren.appcrawler.plugin.ReportPlugin init 2023-02-20 14:37:39 INFO [Plugin.22.init] com.ceshiren.appcrawler.plugin.FreeMind init 2023-02-20 14:37:39 INFO [ReportFactory$.33.initReportPath] reportPath=/Users/workspace/software/appcrawler/20230216145140 2023-02-20 14:37:39 INFO [ReportFactory$.35.initReportPath] testcaseDir=/Users/workspace/software/appcrawler/20230216145140/tmp/ 2023-02-20 14:37:39 INFO [ReportFactory$.38.initReportPath] create /Users/workspace/software/appcrawler/20230216145140/tmp directory 2023-02-20 14:37:39 INFO [Crawler.137.start] prepare setup Appium 2023-02-20 14:37:39 INFO [Crawler.299.setupCrawler] afterAllMax=2 2023-02-20 14:37:40 INFO [Crawler.308.setupDriver] 2023-02-20 14:37:40 INFO [Crawler.344.setupDriver] use AppiumClient 2023-02-20 14:37:40 INFO [AppiumClient.45.] Capabilities {app: , appActivity: .view.WelcomeActivityAlias, appPackage: com.xueqiu.android, appium: http://127.0.0.1:4723/wd/hub, deviceName: TUP4C18C28020075, fullReset: false, newCommandTimeout: 120, noReset: true} 2023-02-20 14:37:52 INFO [SeleniumDriver.58.getDeviceInfo] screenWidth=1080 screenHeight=2250 2023-02-20 14:37:52 INFO [AppiumClient.76.] capture dir = /Users/workspace/software/appcrawler/. 2023-02-20 14:37:52 INFO [Crawler.349.setupDriver] com.ceshiren.appcrawler.driver.AppiumClient@40f35e52 2023-02-20 14:37:52 DEBUG [DynamicEval$.113.load] first import 2023-02-20 14:37:57 INFO [Crawler.148.start] platformName= driver=com.ceshiren.appcrawler.driver.AppiumClient@40f35e52 2023-02-20 14:37:57 INFO [Crawler.149.start] ------------------------------------------------- appcrawler v2.7.4 全平台自动遍历测试工具 Q&A: https://ceshiren.com/c/opensource/appcrawler author: 思寒_seveniruby 天马 霍格沃兹测试开发学社 ------------------------------------------------- 2023-02-20 14:37:57 INFO [Crawler.179.waitAppLoaded] start wait app loaded timeout = 10000 2023-02-20 14:37:58 INFO [Crawler.185.$anonfun$waitAppLoaded$1] wait for app loaded 2023-02-20 14:37:58 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:37:58 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:01 INFO [LogicUtils$.83.asyncTask] use time 2.401 seconds name=getPageSource result=success 2023-02-20 14:38:01 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:01 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:01 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:01 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:01 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:01 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:01 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:01 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:01 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:01 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:01 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:01 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:01 INFO [Crawler.742.parsePageContext] currentContentHash=63cf68e5ecd8def9e916f746950370ae lastContentHash=63cf68e5ecd8def9e916f746950370ae 2023-02-20 14:38:01 INFO [DataRecord.25.isDiff] just only record return false 2023-02-20 14:38:01 INFO [Crawler.746.parsePageContext] ui not change 2023-02-20 14:38:01 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(@text, 'App')] 2023-02-20 14:38:01 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:02 INFO [Crawler.185.$anonfun$waitAppLoaded$1] wait for app loaded 2023-02-20 14:38:02 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:02 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:04 INFO [LogicUtils$.83.asyncTask] use time 1.948 seconds name=getPageSource result=success 2023-02-20 14:38:04 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:04 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:04 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:05 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:05 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:05 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:05 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:05 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:05 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:05 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:05 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:05 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:05 INFO [Crawler.742.parsePageContext] currentContentHash=9b7b927b7d4907ba77abc5208e98f7e6 lastContentHash=63cf68e5ecd8def9e916f746950370ae 2023-02-20 14:38:05 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:05 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(@text, 'App')] 2023-02-20 14:38:05 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:06 INFO [Crawler.185.$anonfun$waitAppLoaded$1] wait for app loaded 2023-02-20 14:38:06 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:06 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:07 INFO [LogicUtils$.83.asyncTask] use time 1.65 seconds name=getPageSource result=success 2023-02-20 14:38:07 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:07 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:07 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:07 INFO [LogicUtils$.91.asyncTask] use time 10.007 seconds name=waitAppLoaded result=error 2023-02-20 14:38:07 ERROR [LogicUtils$.98.asyncTask] 10 seconds timeout 2023-02-20 14:38:07 INFO [Crawler.199.waitAppLoaded] wait finish 2023-02-20 14:38:07 INFO [Crawler.152.start] driver=null 2023-02-20 14:38:07 INFO [Crawler.153.start] get screen info 2023-02-20 14:38:07 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:08 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:08 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:08 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:08 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:08 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:08 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:08 INFO [SeleniumDriver.58.getDeviceInfo] screenWidth=1080 screenHeight=2250 2023-02-20 14:38:08 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:08 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:08 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:08 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:10 INFO [LogicUtils$.83.asyncTask] use time 1.951 seconds name=getPageSource result=success 2023-02-20 14:38:10 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:10 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:10 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:10 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:10 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:10 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:10 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:10 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:10 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:10 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:10 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:10 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:10 INFO [Crawler.742.parsePageContext] currentContentHash=b2b7fb8b53430fcbc27008c35283875b lastContentHash=9b7b927b7d4907ba77abc5208e98f7e6 2023-02-20 14:38:10 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:10 INFO [Crawler.257.firstRefresh] first refresh 2023-02-20 14:38:10 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /*/* 2023-02-20 14:38:10 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:10 ERROR [LogicUtils$.13.handleException] java.util.NoSuchElementException: head of empty list 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.util.concurrent.FutureTask.report(FutureTask.java:122) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.util.concurrent.FutureTask.get(FutureTask.java:206) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.utils.LogicUtils$.$anonfun$asyncTask$1(LogicUtils.scala:75) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] scala.util.Try$.apply(Try.scala:210) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.utils.LogicUtils$.asyncTask(LogicUtils.scala:66) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.core.Crawler.getEventElement(Crawler.scala:269) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.core.Crawler.firstRefresh(Crawler.scala:258) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.core.Crawler.start(Crawler.scala:159) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.AppCrawler$.startCrawl(AppCrawler.scala:319) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.AppCrawler$.parseParams(AppCrawler.scala:286) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.AppCrawler$.main(AppCrawler.scala:73) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.AppCrawler.main(AppCrawler.scala) 2023-02-20 14:38:10 ERROR [LogicUtils$.16.handleException] find more cause 2023-02-20 14:38:10 ERROR [LogicUtils$.13.handleException] head of empty list 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] scala.collection.immutable.Nil$.head(List.scala:629) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] scala.collection.immutable.Nil$.head(List.scala:628) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.core.Crawler.$anonfun$getEventElement$1(Crawler.scala:270) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] com.ceshiren.appcrawler.utils.LogicUtils$$anon$1.call(LogicUtils.scala:69) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.util.concurrent.FutureTask.run(FutureTask.java:266) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 2023-02-20 14:38:10 ERROR [LogicUtils$.14.$anonfun$handleException$1] java.lang.Thread.run(Thread.java:748) 2023-02-20 14:38:10 ERROR [LogicUtils$.18.handleException] exception finish 2023-02-20 14:38:10 INFO [Crawler.756.beforeElementAction] MainNestingActivity.tag=Start.id=Start.name=Start 2023-02-20 14:38:10 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:10 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:10 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:10 INFO [Crawler.1043.doElementAction] current index = 0 2023-02-20 14:38:10 INFO [Crawler.1044.doElementAction] current xpath = /*/* 2023-02-20 14:38:10 INFO [Crawler.1045.doElementAction] current action = _Start 2023-02-20 14:38:10 INFO [Crawler.1046.doElementAction] current element = MainNestingActivity.tag=Start.id=Start.name=Start 2023-02-20 14:38:10 INFO [Crawler.1047.doElementAction] current url = MainNestingActivity 2023-02-20 14:38:10 INFO [Crawler.1048.doElementAction] current tag path = 2023-02-20 14:38:10 INFO [Crawler.1049.doElementAction] current file name = MainNestingActivity.tag=Start.id=Start.name=Start 2023-02-20 14:38:10 INFO [URIElementStore.67.saveReqHash] save reqHash to 0 2023-02-20 14:38:10 INFO [URIElementStore.83.saveReqDom] save reqDom to 0 2023-02-20 14:38:10 INFO [Crawler.1059.doElementAction] just log 2023-02-20 14:38:10 INFO [Crawler.1060.doElementAction] { "url" : "MainNestingActivity", "tag" : "Start", "className" : "", "id" : "Start", "name" : "Start", "text" : "", "instance" : "", "depth" : "", "latest" : "", "valid" : "", "selected" : "", "xpath" : "/*/*", "ancestor" : "", "x" : 0, "y" : 0, "width" : 1080, "height" : 2250, "action" : "_Start" } 2023-02-20 14:38:10 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:10 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:11 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:11 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:11 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:12 INFO [LogicUtils$.83.asyncTask] use time 1.28 seconds name=screenshot result=success 2023-02-20 14:38:12 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:12 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:12 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:14 INFO [LogicUtils$.83.asyncTask] use time 1.495 seconds name=getPageSource result=success 2023-02-20 14:38:14 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:14 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:14 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:14 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:14 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:14 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:14 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:14 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:14 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:14 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:14 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:14 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:14 INFO [Crawler.742.parsePageContext] currentContentHash=8fd5554f5a1054dbe74b833f5343a57e lastContentHash=b2b7fb8b53430fcbc27008c35283875b 2023-02-20 14:38:14 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:14 INFO [Crawler.1201.saveDom] save to 20230216145140/0_MainNestingActivity.tag=Start.id=Start.name=Start.clicked.xml 2023-02-20 14:38:14 INFO [URIElementStore.75.saveResHash] save resHash to 0 2023-02-20 14:38:14 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/0_MainNestingActivity.tag=Start.id=Start.name=Start.clicked.png to 0 2023-02-20 14:38:14 INFO [URIElementStore.90.saveResDom] save resDom to 0 2023-02-20 14:38:14 INFO [Crawler.160.start] append current app name to appWhiteList 2023-02-20 14:38:14 INFO [Crawler.164.start] run steps 2023-02-20 14:38:14 INFO [Crawler.286.runSteps] run testcases 2023-02-20 14:38:14 INFO [AutomationSuite.16.beforeAll] beforeAll 2023-02-20 14:38:14 INFO [AutomationSuite.24.$anonfun$new$1] testcase start 2023-02-20 14:38:14 INFO [AutomationSuite.31.$anonfun$new$2] --- given: [] when: xpath: "//*[contains(@text,'自选')]" action: "click" actions: [] then: - "//*[contains(@text,'美股')]" xpath: "//*[contains(@text,'自选')]" action: "click" actions: [] times: -1 2023-02-20 14:38:14 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 2 with //*[contains(@text,'自选')] 2023-02-20 14:38:15 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 2 2023-02-20 14:38:15 DEBUG [AutomationSuite.37.$anonfun$new$2] HashMap(long-clickable -> false, ancestor -> //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/main_nesting_content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/home_container' and @class='android.widget.RelativeLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/appbar_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/appbar_scroll_layout' and @class='android.widget.LinearLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/rl_magic_view' and @class='android.widget.RelativeLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/home_indicator' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.HorizontalScrollView[@resource-id='com.xueqiu.android:id/scroll_view' and @class='android.widget.HorizontalScrollView']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/title_container' and @class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/title_container' and @class='android.widget.FrameLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/title_text' and @class='android.widget.TextView'], bounds -> [573,523][669,580], name() -> android.widget.TextView, innerText -> , xpath -> //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/main_nesting_content']//*[@resource-id='com.xueqiu.android:id/home_container']//*[@resource-id='com.xueqiu.android:id/appbar_layout']//*[@resource-id='com.xueqiu.android:id/appbar_scroll_layout']//*[@resource-id='com.xueqiu.android:id/rl_magic_view']//*[@resource-id='com.xueqiu.android:id/home_indicator']//*[@resource-id='com.xueqiu.android:id/scroll_view']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_text' and @text='自选'], valid -> true, value -> 自选, x -> 573, package -> com.xueqiu.android, name -> com.xueqiu.android:id/title_text, clickable -> false, checked -> false, y -> 523, enabled -> true, label -> , checkable -> false, focusable -> false, height -> 57, displayed -> true, focused -> false, selected -> false, text -> 自选, class -> android.widget.TextView, scrollable -> false, depth -> 23, resource-id -> com.xueqiu.android:id/title_text, width -> 96, index -> 0, password -> false) 2023-02-20 14:38:15 DEBUG [AutomationSuite.40.$anonfun$new$2] Steps.tag=TextView.depth=23.id=title_text.text=自选 2023-02-20 14:38:15 INFO [Crawler.756.beforeElementAction] Steps.tag=TextView.depth=23.id=title_text.text=自选 2023-02-20 14:38:15 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:15 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:15 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:15 INFO [Crawler.1043.doElementAction] current index = 1 2023-02-20 14:38:15 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/main_nesting_content']//*[@resource-id='com.xueqiu.android:id/home_container']//*[@resource-id='com.xueqiu.android:id/appbar_layout']//*[@resource-id='com.xueqiu.android:id/appbar_scroll_layout']//*[@resource-id='com.xueqiu.android:id/rl_magic_view']//*[@resource-id='com.xueqiu.android:id/home_indicator']//*[@resource-id='com.xueqiu.android:id/scroll_view']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_text' and @text='自选'] 2023-02-20 14:38:15 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:15 INFO [Crawler.1046.doElementAction] current element = Steps.tag=TextView.depth=23.id=title_text.text=自选 2023-02-20 14:38:15 INFO [Crawler.1047.doElementAction] current url = Steps 2023-02-20 14:38:15 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/main_nesting_content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/home_container' and @class='android.widget.RelativeLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/appbar_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/appbar_scroll_layout' and @class='android.widget.LinearLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/rl_magic_view' and @class='android.widget.RelativeLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/home_indicator' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.HorizontalScrollView[@resource-id='com.xueqiu.android:id/scroll_view' and @class='android.widget.HorizontalScrollView']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/title_container' and @class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/title_container' and @class='android.widget.FrameLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/title_text' and @class='android.widget.TextView'] 2023-02-20 14:38:15 INFO [Crawler.1049.doElementAction] current file name = Steps.tag=TextView.depth=23.id=title_text.text=自选 2023-02-20 14:38:15 INFO [URIElementStore.67.saveReqHash] save reqHash to 1 2023-02-20 14:38:15 INFO [URIElementStore.83.saveReqDom] save reqDom to 1 2023-02-20 14:38:15 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.click.png to 1 2023-02-20 14:38:15 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.click.png 2023-02-20 14:38:15 INFO [ScreenShot.45.clip] write png 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.click.png 2023-02-20 14:38:15 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.click.png 2023-02-20 14:38:16 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:16 INFO [ReactWebDriver.36.findElement] find by uri element= Steps.tag=TextView.depth=23.id=title_text.text=自选 2023-02-20 14:38:16 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.TextView").text("自选").resourceId("com.xueqiu.android:id/title_text") 2023-02-20 14:38:16 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:16 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:18 INFO [LogicUtils$.83.asyncTask] use time 1.86 seconds name=action result=success 2023-02-20 14:38:18 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:18 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:19 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:19 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:19 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:20 INFO [LogicUtils$.83.asyncTask] use time 1.024 seconds name=screenshot result=success 2023-02-20 14:38:20 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:20 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:20 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:21 INFO [LogicUtils$.83.asyncTask] use time 1.427 seconds name=getPageSource result=success 2023-02-20 14:38:21 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:21 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:21 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:21 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:21 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:21 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:21 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:21 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:21 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:21 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:22 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:22 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:22 INFO [Crawler.742.parsePageContext] currentContentHash=ad44ec8d0c62dfe71a07d3e8a1eb34c5 lastContentHash=8fd5554f5a1054dbe74b833f5343a57e 2023-02-20 14:38:22 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:22 INFO [Crawler.1201.saveDom] save to 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.clicked.xml 2023-02-20 14:38:22 INFO [URIElementStore.75.saveResHash] save resHash to 1 2023-02-20 14:38:22 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/1_Steps.tag=TextView.depth=23.id=title_text.text=自选.clicked.png to 1 2023-02-20 14:38:22 INFO [URIElementStore.90.saveResDom] save resDom to 1 2023-02-20 14:38:22 TRACE [TagLimitPlugin.67.afterElementAction] not contains 2023-02-20 14:38:22 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(@text,'美股')] 2023-02-20 14:38:22 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:22 INFO [AutomationSuite.68.$anonfun$new$6] //*[contains(@text,'美股')] [ ] 2023-02-20 14:38:22 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:22 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:23 INFO [LogicUtils$.83.asyncTask] use time 1.095 seconds name=getPageSource result=success 2023-02-20 14:38:23 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:23 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:23 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:23 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:23 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:23 INFO [Crawler.715.parsePageContext] url=MainNestingActivity 2023-02-20 14:38:23 TRACE [Crawler.731.parsePageContext] urlStack=Stack(MainNestingActivity) 2023-02-20 14:38:23 INFO [Crawler.742.parsePageContext] currentContentHash=ad44ec8d0c62dfe71a07d3e8a1eb34c5 lastContentHash=ad44ec8d0c62dfe71a07d3e8a1eb34c5 2023-02-20 14:38:23 INFO [Crawler.746.parsePageContext] ui not change 2023-02-20 14:38:23 INFO [Crawler.1304.handleCtrlC] add shutdown hook 2023-02-20 14:38:23 INFO [Crawler.945.crawl] crawl use 44341 ms 2023-02-20 14:38:23 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:23 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:23 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:23 DEBUG [Crawler.397.needBackToApp] List(, , , , , , ) 2023-02-20 14:38:23 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Button')] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 4 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 4 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=25.id=created_at.text=19分钟前 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=25.id=created_at.text=20分钟前 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 7 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 7 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 4 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 4 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 10 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 10 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.512.$anonfun$getAvailableElement$3] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:23 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:23 INFO [Crawler.517.getAvailableElement] selected nodes size = 25 2023-02-20 14:38:23 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 54 with //*[not(*)] 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 54 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=21.id=tv_content.text=7天免费精品课_#10;教你基金买卖技巧 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=25.id=created_at.text=19分钟前 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=21.id=tv_title.text=大行评级 | 瑞银:上调小米-W(1810.HK)目标价至16港元 评级“买入” 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=21.id=statusText.text=格隆汇2月20日丨瑞银发报告指,仍然认为中国的智能手机更换周期应会在今年下半年重新加速,而小米-W(1810.HK)可能是主要的受惠者。集团推出更多高端Android智能手机以及开发新零售线下国内渠道,料该渠道去年占中国智能手机销量的逾60%至70%... 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=25.id=percent_new.text=+2.20% 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=25.id=created_at.text=20分钟前 2023-02-20 14:38:23 TRACE [Crawler.549.$anonfun$getAvailableElement$11] MainNestingActivity.tag=TextView.depth=21.id=tv_title.text=里昂:维持腾讯(0700.HK)买入评级 目标价上调至500港元 2023-02-20 14:38:23 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 23 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.556.$anonfun$getAvailableElement$12] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=23 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageButton.depth=14.id=action_message first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=22.id=more_action_button first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=13.id=post_status first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=25.id=profileImage first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=22 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=22 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=25.id=profileImage first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.122.isClicked] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=23 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageButton.depth=14.id=action_message first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=22.id=more_action_button first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=13.id=post_status first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=25.id=profileImage first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=22 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=22 first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=25.id=profileImage first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 DEBUG [URIElementStore.131.isSkipped] element=MainNestingActivity.tag=ImageView.depth=12.id=tab_icon first show, need click 2023-02-20 14:38:23 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=23 2023-02-20 14:38:23 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 14 with //*[@selected='true']/..//* 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 14 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 15 with //*[@selected='true']/../..//* 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 15 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.613.$anonfun$getAvailableElement$26] MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=14 selected=false list=false MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=14 selected=false list=false MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=14 selected=false list=false MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.630.getAvailableElement] sorted nodes length=23 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=25 selected=false list=false MainNestingActivity.tag=ImageView.depth=25.id=profileImage 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=retweet_count.text=分享 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=comment_count.text=评论 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=TextView.depth=22.id=reward_snowcoin.text=点赞 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22.id=more_action_button 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=22 selected=false list=false MainNestingActivity.tag=ImageView.depth=22 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false MainNestingActivity.tag=ImageView.depth=21.id=iv_fund_big_card_close 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false MainNestingActivity.tag=ImageView.depth=16.id=iv_home_tab_config 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=14 selected=false list=false MainNestingActivity.tag=ImageButton.depth=14.id=action_message 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=13 selected=false list=false MainNestingActivity.tag=ImageView.depth=13.id=post_status 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=自选 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=基金 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=私募 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=false list=false MainNestingActivity.tag=TextView.depth=12.id=tab_name.text=我的 2023-02-20 14:38:23 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=12 selected=true list=false MainNestingActivity.tag=ImageView.depth=12.id=tab_icon 2023-02-20 14:38:23 INFO [Crawler.638.getAvailableElement] next element Some(MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯) 2023-02-20 14:38:23 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:23 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:23 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:23 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:23 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:23 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:23 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[MainNestingActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/main_nesting_content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/home_container' and @class='android.widget.RelativeLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.viewpager.widget.ViewPager[@resource-id='com.xueqiu.android:id/view_pager' and @class='androidx.viewpager.widget.ViewPager']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/portfolio_layout_refresh' and @class='android.view.ViewGroup']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/portfolio_recycler_view' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView']]=2 2023-02-20 14:38:23 INFO [Crawler.756.beforeElementAction] MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:23 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:23 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:23 INFO [Crawler.1043.doElementAction] current index = 2 2023-02-20 14:38:23 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/main_nesting_content']//*[@resource-id='com.xueqiu.android:id/home_container']//*[@resource-id='com.xueqiu.android:id/view_pager']//*[@resource-id='com.xueqiu.android:id/portfolio_layout_refresh']//*[@resource-id='com.xueqiu.android:id/portfolio_recycler_view']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/userName' and @text='资讯'] 2023-02-20 14:38:23 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:23 INFO [Crawler.1046.doElementAction] current element = MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 INFO [Crawler.1047.doElementAction] current url = MainNestingActivity 2023-02-20 14:38:23 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/main_nesting_content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/home_container' and @class='android.widget.RelativeLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.viewpager.widget.ViewPager[@resource-id='com.xueqiu.android:id/view_pager' and @class='androidx.viewpager.widget.ViewPager']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/portfolio_layout_refresh' and @class='android.view.ViewGroup']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/portfolio_recycler_view' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView'] 2023-02-20 14:38:23 INFO [Crawler.1049.doElementAction] current file name = MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:23 INFO [URIElementStore.67.saveReqHash] save reqHash to 2 2023-02-20 14:38:23 INFO [URIElementStore.83.saveReqDom] save reqDom to 2 2023-02-20 14:38:23 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.click.png to 2 2023-02-20 14:38:23 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.click.png 2023-02-20 14:38:23 INFO [ScreenShot.45.clip] write png 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.click.png 2023-02-20 14:38:23 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.click.png 2023-02-20 14:38:24 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:24 INFO [ReactWebDriver.36.findElement] find by uri element= MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯 2023-02-20 14:38:24 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.TextView").text("资讯").resourceId("com.xueqiu.android:id/userName") 2023-02-20 14:38:24 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:24 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:26 INFO [LogicUtils$.83.asyncTask] use time 1.54 seconds name=action result=success 2023-02-20 14:38:26 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:26 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:27 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:27 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:27 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:28 INFO [LogicUtils$.83.asyncTask] use time 1.283 seconds name=screenshot result=success 2023-02-20 14:38:28 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:28 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:28 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:28 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:28 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:28 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:28 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:28 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:28 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:28 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:28 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 INFO [Crawler.715.parsePageContext] url=FakeUserProfileActivity 2023-02-20 14:38:29 TRACE [Crawler.731.parsePageContext] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) 2023-02-20 14:38:29 INFO [Crawler.742.parsePageContext] currentContentHash=93eed45970a9b9465c6b67d38047a0a3 lastContentHash=ad44ec8d0c62dfe71a07d3e8a1eb34c5 2023-02-20 14:38:29 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:29 INFO [Crawler.1201.saveDom] save to 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.clicked.xml 2023-02-20 14:38:29 INFO [URIElementStore.75.saveResHash] save resHash to 2 2023-02-20 14:38:29 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/2_MainNestingActivity.tag=TextView.depth=25.id=userName.text=资讯.clicked.png to 2 2023-02-20 14:38:29 INFO [URIElementStore.90.saveResDom] save resDom to 2 2023-02-20 14:38:29 INFO [TagLimitPlugin.65.afterElementAction] tagLimit[MainNestingActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/main_nesting_content' and @class='android.widget.FrameLayout']//android.widget.RelativeLayout[@resource-id='com.xueqiu.android:id/home_container' and @class='android.widget.RelativeLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.viewpager.widget.ViewPager[@resource-id='com.xueqiu.android:id/view_pager' and @class='androidx.viewpager.widget.ViewPager']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/portfolio_layout_refresh' and @class='android.view.ViewGroup']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/portfolio_recycler_view' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView']]=1 2023-02-20 14:38:29 INFO [Crawler.945.crawl] crawl use 5655 ms 2023-02-20 14:38:29 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:29 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:29 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:29 DEBUG [Crawler.397.needBackToApp] List(, , , , , , , ) 2023-02-20 14:38:29 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Button')] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 2 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 2 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 5 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 5 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 INFO [Crawler.517.getAvailableElement] selected nodes size = 12 2023-02-20 14:38:29 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 30 with //*[not(*)] 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 29 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=02-17 17:03 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=99岁芒格讲满150分钟:对比亚迪不吝赞美,对银行股跟巴菲特想法有不同,还谈了ChatGPT、半导体等时髦话 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=查理·芒格总是不让人希望落空。他说,你要尽可能地向上攀登,哪怕是前进一点点,这就是生命的奥秘。 99岁芒格就是这么做的。 北京时间2月16日凌晨两点,Daliy Journal(每日期刊)股东大会,芒格边吃着小零食边与大家交流,足足讲了两个... 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=percent_new.text=+0.07% 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=王健林所言不假:未来中国近40%的家庭,或不得不面临“3大麻烦” 2023-02-20 14:38:29 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=房子对于许多中国人来说是极其重要的,现在谈婚论嫁都避不开房子的话题,父母打拼一辈子也是为了买房。 在十年前投资房地产是一本万利的事情,但近年来,房地产行业却辉煌不再。 从2022年底的成交量来看,各大城市在房价下跌的情况下依旧很... 2023-02-20 14:38:29 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 8 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=8 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:29 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=8 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:29 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:29 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=8 2023-02-20 14:38:29 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/..//* 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/../..//* 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 TRACE [Crawler.630.getAvailableElement] sorted nodes length=8 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:29 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:29 INFO [Crawler.638.getAvailableElement] next element Some(FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯) 2023-02-20 14:38:29 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:29 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:29 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:29 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:29 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:29 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:29 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView']]=2 2023-02-20 14:38:29 INFO [Crawler.756.beforeElementAction] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:29 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:29 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:29 INFO [Crawler.1043.doElementAction] current index = 3 2023-02-20 14:38:29 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/userName' and @text='资讯'] 2023-02-20 14:38:29 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:29 INFO [Crawler.1046.doElementAction] current element = FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 INFO [Crawler.1047.doElementAction] current url = FakeUserProfileActivity 2023-02-20 14:38:29 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView'] 2023-02-20 14:38:29 INFO [Crawler.1049.doElementAction] current file name = FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:29 INFO [URIElementStore.67.saveReqHash] save reqHash to 3 2023-02-20 14:38:29 INFO [URIElementStore.83.saveReqDom] save reqDom to 3 2023-02-20 14:38:29 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.click.png to 3 2023-02-20 14:38:29 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.click.png 2023-02-20 14:38:29 INFO [ScreenShot.45.clip] write png 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.click.png 2023-02-20 14:38:29 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.click.png 2023-02-20 14:38:30 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:30 INFO [ReactWebDriver.36.findElement] find by uri element= FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:30 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.TextView").text("资讯").resourceId("com.xueqiu.android:id/userName") 2023-02-20 14:38:30 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:30 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:31 INFO [LogicUtils$.83.asyncTask] use time 1.359 seconds name=action result=success 2023-02-20 14:38:31 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:31 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:32 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:32 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:32 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:33 INFO [LogicUtils$.83.asyncTask] use time 1.257 seconds name=screenshot result=success 2023-02-20 14:38:33 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:33 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:33 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:34 INFO [LogicUtils$.83.asyncTask] use time 0.642 seconds name=getPageSource result=success 2023-02-20 14:38:34 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:34 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:34 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:34 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 INFO [Crawler.715.parsePageContext] url=FakeUserProfileActivity 2023-02-20 14:38:34 TRACE [Crawler.731.parsePageContext] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) 2023-02-20 14:38:34 INFO [Crawler.742.parsePageContext] currentContentHash=93eed45970a9b9465c6b67d38047a0a3 lastContentHash=93eed45970a9b9465c6b67d38047a0a3 2023-02-20 14:38:34 INFO [Crawler.746.parsePageContext] ui not change 2023-02-20 14:38:34 INFO [Crawler.1201.saveDom] save to 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.clicked.xml 2023-02-20 14:38:34 INFO [URIElementStore.75.saveResHash] save resHash to 3 2023-02-20 14:38:34 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/3_FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯.clicked.png to 3 2023-02-20 14:38:34 INFO [URIElementStore.90.saveResDom] save resDom to 3 2023-02-20 14:38:34 INFO [TagLimitPlugin.65.afterElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/userName' and @class='android.widget.TextView']]=1 2023-02-20 14:38:34 INFO [Crawler.945.crawl] crawl use 5712 ms 2023-02-20 14:38:34 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:34 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:34 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:34 DEBUG [Crawler.397.needBackToApp] List(, , , , , , , , ) 2023-02-20 14:38:34 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Button')] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 2 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 2 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 5 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 5 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 INFO [Crawler.517.getAvailableElement] selected nodes size = 12 2023-02-20 14:38:34 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 30 with //*[not(*)] 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 29 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=02-17 17:03 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=99岁芒格讲满150分钟:对比亚迪不吝赞美,对银行股跟巴菲特想法有不同,还谈了ChatGPT、半导体等时髦话 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=查理·芒格总是不让人希望落空。他说,你要尽可能地向上攀登,哪怕是前进一点点,这就是生命的奥秘。 99岁芒格就是这么做的。 北京时间2月16日凌晨两点,Daliy Journal(每日期刊)股东大会,芒格边吃着小零食边与大家交流,足足讲了两个... 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=percent_new.text=+0.07% 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=王健林所言不假:未来中国近40%的家庭,或不得不面临“3大麻烦” 2023-02-20 14:38:34 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=房子对于许多中国人来说是极其重要的,现在谈婚论嫁都避不开房子的话题,父母打拼一辈子也是为了买房。 在十年前投资房地产是一本万利的事情,但近年来,房地产行业却辉煌不再。 从2022年底的成交量来看,各大城市在房价下跌的情况下依旧很... 2023-02-20 14:38:34 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 8 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=8 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:34 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=6 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:34 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage first show, need click 2023-02-20 14:38:34 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=6 2023-02-20 14:38:34 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/..//* 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/../..//* 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 TRACE [Crawler.630.getAvailableElement] sorted nodes length=6 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=21 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:34 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:34 INFO [Crawler.638.getAvailableElement] next element Some(FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage) 2023-02-20 14:38:34 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:34 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:34 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:34 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:34 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:34 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:34 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.FrameLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.ImageView']]=2 2023-02-20 14:38:34 INFO [Crawler.756.beforeElementAction] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:34 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:34 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:34 INFO [Crawler.1043.doElementAction] current index = 4 2023-02-20 14:38:34 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/profileImage']//*[@resource-id='com.xueqiu.android:id/profileImage'] 2023-02-20 14:38:34 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:34 INFO [Crawler.1046.doElementAction] current element = FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 INFO [Crawler.1047.doElementAction] current url = FakeUserProfileActivity 2023-02-20 14:38:34 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.FrameLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.ImageView'] 2023-02-20 14:38:34 INFO [Crawler.1049.doElementAction] current file name = FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:34 INFO [URIElementStore.67.saveReqHash] save reqHash to 4 2023-02-20 14:38:34 INFO [URIElementStore.83.saveReqDom] save reqDom to 4 2023-02-20 14:38:34 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.click.png to 4 2023-02-20 14:38:34 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.click.png 2023-02-20 14:38:34 INFO [ScreenShot.45.clip] write png 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.click.png 2023-02-20 14:38:34 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.click.png 2023-02-20 14:38:35 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:35 INFO [ReactWebDriver.36.findElement] find by uri element= FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:35 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.ImageView").resourceId("com.xueqiu.android:id/profileImage") 2023-02-20 14:38:36 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:36 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:37 INFO [LogicUtils$.83.asyncTask] use time 1.388 seconds name=action result=success 2023-02-20 14:38:37 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:37 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:38 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:38 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:38 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:39 INFO [LogicUtils$.83.asyncTask] use time 1.24 seconds name=screenshot result=success 2023-02-20 14:38:39 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:39 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:39 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:40 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:40 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:40 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:40 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 INFO [Crawler.715.parsePageContext] url=FakeUserProfileActivity 2023-02-20 14:38:40 TRACE [Crawler.731.parsePageContext] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) 2023-02-20 14:38:40 INFO [Crawler.742.parsePageContext] currentContentHash=93eed45970a9b9465c6b67d38047a0a3 lastContentHash=93eed45970a9b9465c6b67d38047a0a3 2023-02-20 14:38:40 INFO [Crawler.746.parsePageContext] ui not change 2023-02-20 14:38:40 INFO [Crawler.1201.saveDom] save to 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.clicked.xml 2023-02-20 14:38:40 INFO [URIElementStore.75.saveResHash] save resHash to 4 2023-02-20 14:38:40 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/4_FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage.clicked.png to 4 2023-02-20 14:38:40 INFO [URIElementStore.90.saveResDom] save resDom to 4 2023-02-20 14:38:40 INFO [TagLimitPlugin.65.afterElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_header_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/content_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.FrameLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/profileImage' and @class='android.widget.ImageView']]=1 2023-02-20 14:38:40 INFO [ReportPlugin.46.needReport] read command from /Users/workspace/software/appcrawler/20230216145140/request 2023-02-20 14:38:40 INFO [ReportPlugin.52.needReport] 2023-02-20 14:38:40 INFO [Crawler.945.crawl] crawl use 5613 ms 2023-02-20 14:38:40 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:40 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:40 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:40 DEBUG [Crawler.397.needBackToApp] List(, , , , , , , , , ) 2023-02-20 14:38:40 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Button')] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 2 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 2 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 5 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 5 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:40 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 INFO [Crawler.517.getAvailableElement] selected nodes size = 12 2023-02-20 14:38:40 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 30 with //*[not(*)] 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 29 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=02-17 17:03 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=99岁芒格讲满150分钟:对比亚迪不吝赞美,对银行股跟巴菲特想法有不同,还谈了ChatGPT、半导体等时髦话 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=查理·芒格总是不让人希望落空。他说,你要尽可能地向上攀登,哪怕是前进一点点,这就是生命的奥秘。 99岁芒格就是这么做的。 北京时间2月16日凌晨两点,Daliy Journal(每日期刊)股东大会,芒格边吃着小零食边与大家交流,足足讲了两个... 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=percent_new.text=+0.07% 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=王健林所言不假:未来中国近40%的家庭,或不得不面临“3大麻烦” 2023-02-20 14:38:40 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=房子对于许多中国人来说是极其重要的,现在谈婚论嫁都避不开房子的话题,父母打拼一辈子也是为了买房。 在十年前投资房地产是一本万利的事情,但近年来,房地产行业却辉煌不再。 从2022年底的成交量来看,各大城市在房价下跌的情况下依旧很... 2023-02-20 14:38:40 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 8 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:40 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=8 2023-02-20 14:38:40 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:40 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=4 2023-02-20 14:38:40 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:40 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:40 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=4 2023-02-20 14:38:40 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/..//* 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/../..//* 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 TRACE [Crawler.630.getAvailableElement] sorted nodes length=4 2023-02-20 14:38:40 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:40 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:40 INFO [Crawler.638.getAvailableElement] next element Some(FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button) 2023-02-20 14:38:40 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:40 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:40 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:40 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:40 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:40 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:40 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_foot_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/normal_answer_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/more_action_button' and @class='android.widget.ImageView']]=2 2023-02-20 14:38:40 INFO [Crawler.756.beforeElementAction] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:40 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:40 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:40 INFO [Crawler.1043.doElementAction] current index = 5 2023-02-20 14:38:40 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_foot_id']//*[@resource-id='com.xueqiu.android:id/normal_answer_layout']//*[@resource-id='com.xueqiu.android:id/more_action_button'] 2023-02-20 14:38:40 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:40 INFO [Crawler.1046.doElementAction] current element = FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 INFO [Crawler.1047.doElementAction] current url = FakeUserProfileActivity 2023-02-20 14:38:40 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_foot_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/normal_answer_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/more_action_button' and @class='android.widget.ImageView'] 2023-02-20 14:38:40 INFO [Crawler.1049.doElementAction] current file name = FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:40 INFO [URIElementStore.67.saveReqHash] save reqHash to 5 2023-02-20 14:38:40 INFO [URIElementStore.83.saveReqDom] save reqDom to 5 2023-02-20 14:38:40 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.click.png to 5 2023-02-20 14:38:40 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.click.png 2023-02-20 14:38:40 INFO [ScreenShot.45.clip] write png 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.click.png 2023-02-20 14:38:40 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.click.png 2023-02-20 14:38:41 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:41 INFO [ReactWebDriver.36.findElement] find by uri element= FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:41 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.ImageView").resourceId("com.xueqiu.android:id/more_action_button") 2023-02-20 14:38:41 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:41 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:42 INFO [LogicUtils$.83.asyncTask] use time 1.165 seconds name=action result=success 2023-02-20 14:38:42 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:42 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:43 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:43 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:43 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:44 INFO [LogicUtils$.83.asyncTask] use time 1.153 seconds name=screenshot result=success 2023-02-20 14:38:44 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:44 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:44 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:45 INFO [LogicUtils$.83.asyncTask] use time 0.637 seconds name=getPageSource result=success 2023-02-20 14:38:45 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:45 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:45 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:45 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 INFO [Crawler.715.parsePageContext] url=FakeUserProfileActivity 2023-02-20 14:38:45 TRACE [Crawler.731.parsePageContext] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) 2023-02-20 14:38:45 INFO [Crawler.742.parsePageContext] currentContentHash=53e078463ebf3ac998d407c250a7fc29 lastContentHash=93eed45970a9b9465c6b67d38047a0a3 2023-02-20 14:38:45 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:45 INFO [Crawler.1201.saveDom] save to 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.clicked.xml 2023-02-20 14:38:45 INFO [URIElementStore.75.saveResHash] save resHash to 5 2023-02-20 14:38:45 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/5_FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button.clicked.png to 5 2023-02-20 14:38:45 INFO [URIElementStore.90.saveResDom] save resDom to 5 2023-02-20 14:38:45 INFO [TagLimitPlugin.65.afterElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_foot_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/normal_answer_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.ImageView[@resource-id='com.xueqiu.android:id/more_action_button' and @class='android.widget.ImageView']]=1 2023-02-20 14:38:45 INFO [Crawler.945.crawl] crawl use 5451 ms 2023-02-20 14:38:45 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:45 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:45 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:45 DEBUG [Crawler.397.needBackToApp] List(, , , , , , , , , ) 2023-02-20 14:38:45 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Button')] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 INFO [Crawler.517.getAvailableElement] selected nodes size = 7 2023-02-20 14:38:45 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 10 with //*[not(*)] 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 10 2023-02-20 14:38:45 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 7 2023-02-20 14:38:45 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=7 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=7 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image first show, need click 2023-02-20 14:38:45 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=7 2023-02-20 14:38:45 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/..//* 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/../..//* 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 2023-02-20 14:38:45 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=13 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 2023-02-20 14:38:45 TRACE [Crawler.630.getAvailableElement] sorted nodes length=7 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=复制链接 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=投诉 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=16 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=16.id=iv_operate_image 2023-02-20 14:38:45 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=13 selected=false list=false FakeUserProfileActivity.tag=TextView.depth=13.id=cancel.text=取消 2023-02-20 14:38:45 INFO [Crawler.638.getAvailableElement] next element Some(FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏) 2023-02-20 14:38:45 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:45 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:45 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:45 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 1 2023-02-20 14:38:45 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:45 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:45 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/action_bar_root' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/container' and @class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/coordinator' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/design_bottom_sheet' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.HorizontalScrollView[@resource-id='com.xueqiu.android:id/opera_action_container' and @class='android.widget.HorizontalScrollView']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/opera_action_list' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/tv_operate_name' and @class='android.widget.TextView']]=2 2023-02-20 14:38:45 INFO [Crawler.756.beforeElementAction] FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:45 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:45 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:45 INFO [Crawler.1043.doElementAction] current index = 6 2023-02-20 14:38:45 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/action_bar_root']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/container']//*[@resource-id='com.xueqiu.android:id/coordinator']//*[@resource-id='com.xueqiu.android:id/design_bottom_sheet']//*[@resource-id='com.xueqiu.android:id/opera_action_container']//*[@resource-id='com.xueqiu.android:id/opera_action_list']//*[@resource-id='com.xueqiu.android:id/tv_operate_name' and @text='已收藏'] 2023-02-20 14:38:45 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:45 INFO [Crawler.1046.doElementAction] current element = FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 INFO [Crawler.1047.doElementAction] current url = FakeUserProfileActivity 2023-02-20 14:38:45 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/action_bar_root' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/container' and @class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/coordinator' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/design_bottom_sheet' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.HorizontalScrollView[@resource-id='com.xueqiu.android:id/opera_action_container' and @class='android.widget.HorizontalScrollView']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/opera_action_list' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/tv_operate_name' and @class='android.widget.TextView'] 2023-02-20 14:38:45 INFO [Crawler.1049.doElementAction] current file name = FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:45 INFO [URIElementStore.67.saveReqHash] save reqHash to 6 2023-02-20 14:38:45 INFO [URIElementStore.83.saveReqDom] save reqDom to 6 2023-02-20 14:38:45 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.click.png to 6 2023-02-20 14:38:45 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.click.png 2023-02-20 14:38:45 INFO [ScreenShot.45.clip] write png 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.click.png 2023-02-20 14:38:45 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.click.png 2023-02-20 14:38:46 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:46 INFO [ReactWebDriver.36.findElement] find by uri element= FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏 2023-02-20 14:38:46 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.TextView").text("已收藏").resourceId("com.xueqiu.android:id/tv_operate_name") 2023-02-20 14:38:46 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:46 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:50 INFO [LogicUtils$.83.asyncTask] use time 3.31 seconds name=action result=success 2023-02-20 14:38:50 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:50 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:51 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:51 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:51 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:52 INFO [LogicUtils$.83.asyncTask] use time 1.334 seconds name=screenshot result=success 2023-02-20 14:38:52 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:38:52 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:38:52 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:38:53 INFO [LogicUtils$.83.asyncTask] use time 0.722 seconds name=getPageSource result=success 2023-02-20 14:38:53 TRACE [ReactWebDriver.95.$anonfun$getPageSourceWithRetry$1] get raw page source success 2023-02-20 14:38:53 DEBUG [ReactWebDriver.98.$anonfun$getPageSourceWithRetry$1] 2023-02-20 14:38:53 INFO [ReactWebDriver.111.$anonfun$getPageSourceWithRetry$1] xml format 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 INFO [Crawler.711.parsePageContext] appName = 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:53 INFO [Crawler.373.getUri] defineUrl= 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with (//*[@package!=''])[1] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 INFO [Crawler.715.parsePageContext] url=FakeUserProfileActivity 2023-02-20 14:38:53 TRACE [Crawler.731.parsePageContext] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) 2023-02-20 14:38:53 INFO [Crawler.742.parsePageContext] currentContentHash=93eed45970a9b9465c6b67d38047a0a3 lastContentHash=53e078463ebf3ac998d407c250a7fc29 2023-02-20 14:38:53 INFO [Crawler.744.parsePageContext] ui change 2023-02-20 14:38:53 INFO [Crawler.1201.saveDom] save to 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.clicked.xml 2023-02-20 14:38:53 INFO [URIElementStore.75.saveResHash] save resHash to 6 2023-02-20 14:38:53 INFO [URIElementStore.106.saveResImg] save resImg 20230216145140/6_FakeUserProfileActivity.tag=TextView.depth=16.id=tv_operate_name.text=已收藏.clicked.png to 6 2023-02-20 14:38:53 INFO [URIElementStore.90.saveResDom] save resDom to 6 2023-02-20 14:38:53 INFO [TagLimitPlugin.65.afterElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/action_bar_root' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/container' and @class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/coordinator' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/design_bottom_sheet' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.HorizontalScrollView[@resource-id='com.xueqiu.android:id/opera_action_container' and @class='android.widget.HorizontalScrollView']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/opera_action_list' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.TextView[@resource-id='com.xueqiu.android:id/tv_operate_name' and @class='android.widget.TextView']]=1 2023-02-20 14:38:53 INFO [Crawler.945.crawl] crawl use 7512 ms 2023-02-20 14:38:53 INFO [Crawler.953.crawl] crawl next 2023-02-20 14:38:53 DEBUG [Crawler.970.crawl] refresh success 2023-02-20 14:38:53 DEBUG [Crawler.396.needBackToApp] ListBuffer() 2023-02-20 14:38:53 DEBUG [Crawler.397.needBackToApp] List(, , , , , , , , , ) 2023-02-20 14:38:53 DEBUG [Crawler.444.needBackToPage] urlStack=Stack(FakeUserProfileActivity, MainNestingActivity) baseUrl=List() maxDepth=10 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Button')] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with //*[contains(name(), 'Button')] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 1 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[contains(name(), 'Text') and @clickable='true' and string-length(@text)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 3 with //*[@clickable='true']/*[contains(name(), 'Text') and string-length(@text)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 3 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 2 with //*[contains(name(), 'Image') and @clickable='true'] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 2 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 5 with //*[@clickable='true']/*[contains(name(), 'Image')] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 5 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:53 TRACE [Crawler.512.$anonfun$getAvailableElement$3] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Image') and @name!=''] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 TRACE [Crawler.508.$anonfun$getAvailableElement$1] selectedList xpath = //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[contains(name(), 'Text') and @name!='' and string-length(@label)<10] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 INFO [Crawler.517.getAvailableElement] selected nodes size = 12 2023-02-20 14:38:53 TRACE [Crawler.546.$anonfun$getAvailableElement$9] blackList xpath = .*[0-9]{2}.* 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 30 with //*[not(*)] 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 29 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=02-17 17:03 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=99岁芒格讲满150分钟:对比亚迪不吝赞美,对银行股跟巴菲特想法有不同,还谈了ChatGPT、半导体等时髦话 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=查理·芒格总是不让人希望落空。他说,你要尽可能地向上攀登,哪怕是前进一点点,这就是生命的奥秘。 99岁芒格就是这么做的。 北京时间2月16日凌晨两点,Daliy Journal(每日期刊)股东大会,芒格边吃着小零食边与大家交流,足足讲了两个... 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=percent_new.text=+0.07% 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=retweet_count.text=261 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=comment_count.text=192 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=18.id=reward_snowcoin.text=223 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=21.id=created_at.text=昨天13:15 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=tv_title.text=王健林所言不假:未来中国近40%的家庭,或不得不面临“3大麻烦” 2023-02-20 14:38:53 TRACE [Crawler.549.$anonfun$getAvailableElement$11] FakeUserProfileActivity.tag=TextView.depth=17.id=statusText.text=房子对于许多中国人来说是极其重要的,现在谈婚论嫁都避不开房子的话题,父母打拼一辈子也是为了买房。 在十年前投资房地产是一本万利的事情,但近年来,房地产行业却辉煌不再。 从2022年底的成交量来看,各大城市在房价下跌的情况下依旧很... 2023-02-20 14:38:53 INFO [Crawler.554.getAvailableElement] selectedElements - black elements size = 8 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=TextView.depth=21.id=userName.text=资讯 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18.id=more_action_button 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.556.$anonfun$getAvailableElement$12] FakeUserProfileActivity.tag=ImageView.depth=21.id=profileImage 2023-02-20 14:38:53 INFO [Crawler.573.getAvailableElement] selectedElements - backButton size=8 2023-02-20 14:38:53 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:53 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:53 DEBUG [URIElementStore.122.isClicked] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:53 INFO [Crawler.581.getAvailableElement] selectedElements - clicked size=3 2023-02-20 14:38:53 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.583.$anonfun$getAvailableElement$18] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back first show, need click 2023-02-20 14:38:53 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:53 DEBUG [URIElementStore.131.isSkipped] element=FakeUserProfileActivity.tag=ImageView.depth=18 first show, need click 2023-02-20 14:38:53 INFO [Crawler.588.getAvailableElement] selectedElements - skiped fresh elements size=3 2023-02-20 14:38:53 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/..//* 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/..//* 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 TRACE [Crawler.609.$anonfun$getAvailableElement$24] lastList xpath = //*[@selected='true']/../..//* 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 0 with //*[@selected='true']/../..//* 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by depth 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by list 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.683.$anonfun$sortByAttribute$1] sort by selected 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.685.$anonfun$sortByAttribute$7] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 TRACE [Crawler.630.getAvailableElement] sorted nodes length=3 2023-02-20 14:38:53 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=18 selected=false list=false FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.633.$anonfun$getAvailableElement$28] latest=0 depth=10 selected=false list=false FakeUserProfileActivity.tag=ImageButton.depth=10.id=action_back 2023-02-20 14:38:53 INFO [Crawler.638.getAvailableElement] next element Some(FakeUserProfileActivity.tag=ImageView.depth=18) 2023-02-20 14:38:53 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),确定,null,List(),1000) 2023-02-20 14:38:53 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:53 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),取消,null,List(),1000) 2023-02-20 14:38:53 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:53 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [TagLimitPlugin.77.$anonfun$getTimesFromTagLimit$1] find tag with Step(List(),null,List(),share_comment_guide_btn_name,null,List(),1000) 2023-02-20 14:38:53 TRACE [TagLimitPlugin.79.$anonfun$getTimesFromTagLimit$1] 0 2023-02-20 14:38:53 TRACE [TagLimitPlugin.80.$anonfun$getTimesFromTagLimit$1] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 INFO [TagLimitPlugin.48.fixElementAction] tagLimit[FakeUserProfileActivity//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_foot_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/normal_answer_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/retweet_count_view' and @class='android.widget.LinearLayout']//android.widget.ImageView[@class='android.widget.ImageView']]=2 2023-02-20 14:38:53 INFO [Crawler.756.beforeElementAction] FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 TRACE [Crawler.762.beforeElementAction] beforeElementAction 2023-02-20 14:38:53 TRACE [XPathUtil$.233.getNodeListByXPath] nodeList length 1 with /* 2023-02-20 14:38:53 TRACE [XPathUtil$.336.getNodeListByXPath] filted node list length 0 2023-02-20 14:38:53 INFO [Crawler.1043.doElementAction] current index = 7 2023-02-20 14:38:53 INFO [Crawler.1044.doElementAction] current xpath = //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_foot_id']//*[@resource-id='com.xueqiu.android:id/normal_answer_layout']//*[@resource-id='com.xueqiu.android:id/retweet_count_view'] 2023-02-20 14:38:53 INFO [Crawler.1045.doElementAction] current action = click 2023-02-20 14:38:53 INFO [Crawler.1046.doElementAction] current element = FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 INFO [Crawler.1047.doElementAction] current url = FakeUserProfileActivity 2023-02-20 14:38:53 INFO [Crawler.1048.doElementAction] current tag path = //android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/decor_content_parent' and @class='android.view.ViewGroup']//android.widget.FrameLayout[@resource-id='android:id/content' and @class='android.widget.FrameLayout']//android.widget.FrameLayout[@class='android.widget.FrameLayout']//android.view.ViewGroup[@resource-id='com.xueqiu.android:id/refresh_layout' and @class='android.view.ViewGroup']//android.view.ViewGroup[@class='android.view.ViewGroup']//android.widget.RelativeLayout[@class='android.widget.RelativeLayout']//androidx.recyclerview.widget.RecyclerView[@resource-id='com.xueqiu.android:id/fake_recycler' and @class='androidx.recyclerview.widget.RecyclerView']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.LinearLayout[@class='android.widget.LinearLayout']//android.widget.FrameLayout[@resource-id='com.xueqiu.android:id/status_card_foot_id' and @class='android.widget.FrameLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/normal_answer_layout' and @class='android.widget.LinearLayout']//android.widget.LinearLayout[@resource-id='com.xueqiu.android:id/retweet_count_view' and @class='android.widget.LinearLayout']//android.widget.ImageView[@class='android.widget.ImageView'] 2023-02-20 14:38:53 INFO [Crawler.1049.doElementAction] current file name = FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:53 INFO [URIElementStore.67.saveReqHash] save reqHash to 7 2023-02-20 14:38:53 INFO [URIElementStore.83.saveReqDom] save reqDom to 7 2023-02-20 14:38:53 INFO [URIElementStore.97.saveReqImg] save reqImg 20230216145140/7_FakeUserProfileActivity.tag=ImageView.depth=18.click.png to 7 2023-02-20 14:38:53 INFO [Crawler.1174.saveElementScreenshot] draw element in 20230216145140/7_FakeUserProfileActivity.tag=ImageView.depth=18.click.png 2023-02-20 14:38:53 INFO [ScreenShot.45.clip] write png 20230216145140/7_FakeUserProfileActivity.tag=ImageView.depth=18.click.png 2023-02-20 14:38:53 INFO [ScreenShot.57.clip] ImageIO.write newImageName 20230216145140/7_FakeUserProfileActivity.tag=ImageView.depth=18.click.png 2023-02-20 14:38:54 INFO [Crawler.1108.doElementAction] need input click 2023-02-20 14:38:54 INFO [ReactWebDriver.36.findElement] find by uri element= FakeUserProfileActivity.tag=ImageView.depth=18 2023-02-20 14:38:54 INFO [AppiumClient.169.findElements] findElementByAndroidUIAutomator new UiSelector().className("android.widget.ImageView") 2023-02-20 14:38:54 INFO [ReactWebDriver.43.findElement] find by xpath success 2023-02-20 14:38:54 INFO [Crawler.1127.$anonfun$doElementAction$3] click element 2023-02-20 14:38:57 INFO [LogicUtils$.83.asyncTask] use time 3.267 seconds name=action result=success 2023-02-20 14:38:57 INFO [Crawler.1157.doElementAction] afterAllRetry = 0 because of last action not equal to after 2023-02-20 14:38:57 INFO [Crawler.1161.doElementAction] sleep 1000 ms 2023-02-20 14:38:58 INFO [Crawler.781.afterElementAction] mark image exist 2023-02-20 14:38:58 INFO [Crawler.1215.saveScreen] start screenshot 2023-02-20 14:38:58 INFO [Crawler.1220.$anonfun$saveScreen$2] ui change screenshot again 2023-02-20 14:38:59 INFO [Crawler.1286.stop] ctrl c interval = 0 2023-02-20 14:38:59 INFO [Crawler.1186.saveLog] save log to 20230216145140/elements.yml 2023-02-20 14:38:59 INFO [ReportPlugin.78.generateReport] reportPath=/Users/workspace/software/appcrawler/20230216145140 2023-02-20 14:38:59 INFO [ScalaTestRuntime.15.genTestCase] save testcase 2023-02-20 14:38:59 INFO [ReportFactory$.33.initReportPath] reportPath=/Users/workspace/software/appcrawler/20230216145140 2023-02-20 14:38:59 INFO [ReportFactory$.35.initReportPath] testcaseDir=/Users/workspace/software/appcrawler/20230216145140/tmp/ 2023-02-20 14:38:59 INFO [ScalaTestRuntime.22.$anonfun$genTestCase$2] gen testcase class Steps 2023-02-20 14:38:59 TRACE [SuiteToClass$.41.genTestCaseClass] classNameFormat=Steps 2023-02-20 14:38:59 TRACE [SuiteToClass$.57.genTestCaseClass] uri_$eq("Steps"); name_$eq("Steps"); 2023-02-20 14:38:59 DEBUG [SuiteToClass$.61.genTestCaseClass] write to /Users/workspace/software/appcrawler/20230216145140/tmp/ 2023-02-20 14:38:59 INFO [ScalaTestRuntime.22.$anonfun$genTestCase$2] gen testcase class MainNestingActivity 2023-02-20 14:38:59 TRACE [SuiteToClass$.41.genTestCaseClass] classNameFormat=MainNestingActivity 2023-02-20 14:38:59 TRACE [SuiteToClass$.57.genTestCaseClass] uri_$eq("MainNestingActivity"); name_$eq("MainNestingActivity"); 2023-02-20 14:38:59 DEBUG [SuiteToClass$.61.genTestCaseClass] write to /Users/workspace/software/appcrawler/20230216145140/tmp/ 2023-02-20 14:38:59 INFO [ScalaTestRuntime.22.$anonfun$genTestCase$2] gen testcase class FakeUserProfileActivity 2023-02-20 14:38:59 TRACE [SuiteToClass$.41.genTestCaseClass] classNameFormat=FakeUserProfileActivity 2023-02-20 14:38:59 TRACE [SuiteToClass$.57.genTestCaseClass] uri_$eq("FakeUserProfileActivity"); name_$eq("FakeUserProfileActivity"); 2023-02-20 14:38:59 DEBUG [SuiteToClass$.61.genTestCaseClass] write to /Users/workspace/software/appcrawler/20230216145140/tmp/ 2023-02-20 14:38:59 DEBUG [ScalaTestRuntime.42.runTestCase] -R/Users/workspace/software/appcrawler/20230216145140/tmp/-oF-u/Users/workspace/software/appcrawler/20230216145140-h/Users/workspace/software/appcrawler/20230216145140 2023-02-20 14:38:59 INFO [ScalaTestRuntime.59.runTestCase] run -R /Users/workspace/software/appcrawler/20230216145140/tmp/ -oF -u /Users/workspace/software/appcrawler/20230216145140 -h /Users/workspace/software/appcrawler/20230216145140 2023-02-20 14:39:00 INFO [LogicUtils$.83.asyncTask] use time 1.363 seconds name=screenshot result=success 2023-02-20 14:39:00 INFO [Crawler.1226.saveScreen] screenshot success 2023-02-20 14:39:00 INFO [Crawler.693.refreshPage] refresh page 2023-02-20 14:39:00 INFO [ReactWebDriver.88.getPageSourceWithRetry] start to get page source from appium 2023-02-20 14:39:00 TRACE [ReportFactory$.61.getSelected] Report.store.elementStore size = 8 2023-02-20 14:39:00 TRACE [ReportFactory$.62.getSelected] uri=FakeUserProfileActivity 2023-02-20 14:39:00 TRACE [ReportFactory$.70.getSelected] sortedElements=5 2023-02-20 14:39:00 INFO [ReportFactory$.78.getSelected] only show clicked elements 2023-02-20 14:39:00 TRACE [ReportFactory$.81.getSelected] selected elements size = 5 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/userName' and @text='资讯'] 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/profileImage']//*[@resource-id='com.xueqiu.android:id/profileImage'] 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_foot_id']//*[@resource-id='com.xueqiu.android:id/normal_answer_layout']//*[@resource-id='com.xueqiu.android:id/more_action_button'] 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/action_bar_root']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/container']//*[@resource-id='com.xueqiu.android:id/coordinator']//*[@resource-id='com.xueqiu.android:id/design_bottom_sheet']//*[@resource-id='com.xueqiu.android:id/opera_action_container']//*[@resource-id='com.xueqiu.android:id/opera_action_list']//*[@resource-id='com.xueqiu.android:id/tv_operate_name' and @text='已收藏'] 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/refresh_layout']//*[@resource-id='com.xueqiu.android:id/fake_recycler']//*[@resource-id='com.xueqiu.android:id/status_card_foot_id']//*[@resource-id='com.xueqiu.android:id/normal_answer_layout']//*[@resource-id='com.xueqiu.android:id/retweet_count_view'] 2023-02-20 14:39:00 TRACE [ReportFactory$.61.getSelected] Report.store.elementStore size = 8 2023-02-20 14:39:00 TRACE [ReportFactory$.62.getSelected] uri=Steps 2023-02-20 14:39:00 TRACE [ReportFactory$.70.getSelected] sortedElements=1 2023-02-20 14:39:00 INFO [ReportFactory$.78.getSelected] only show clicked elements 2023-02-20 14:39:00 TRACE [ReportFactory$.81.getSelected] selected elements size = 1 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/main_nesting_content']//*[@resource-id='com.xueqiu.android:id/home_container']//*[@resource-id='com.xueqiu.android:id/appbar_layout']//*[@resource-id='com.xueqiu.android:id/appbar_scroll_layout']//*[@resource-id='com.xueqiu.android:id/rl_magic_view']//*[@resource-id='com.xueqiu.android:id/home_indicator']//*[@resource-id='com.xueqiu.android:id/scroll_view']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_container']//*[@resource-id='com.xueqiu.android:id/title_text' and @text='自选'] 2023-02-20 14:39:00 TRACE [ReportFactory$.61.getSelected] Report.store.elementStore size = 8 2023-02-20 14:39:00 TRACE [ReportFactory$.62.getSelected] uri=MainNestingActivity 2023-02-20 14:39:00 TRACE [ReportFactory$.70.getSelected] sortedElements=2 2023-02-20 14:39:00 INFO [ReportFactory$.78.getSelected] only show clicked elements 2023-02-20 14:39:00 TRACE [ReportFactory$.81.getSelected] selected elements size = 2 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase /*/* 2023-02-20 14:39:00 DEBUG [ScalaTestTemplate.31.$anonfun$addTestCase$1] add testcase //*[@resource-id='com.xueqiu.android:id/decor_content_parent']//*[@resource-id='android:id/content']//*[@resource-id='com.xueqiu.android:id/main_nesting_content']//*[@resource-id='com.xueqiu.android:id/home_container']//*[@resource-id='com.xueqiu.android:id/view_pager']//*[@resource-id='com.xueqiu.android:id/portfolio_layout_refresh']//*[@resource-id='com.xueqiu.android:id/portfolio_recycler_view']//*[@resource-id='com.xueqiu.android:id/status_card_header_id']//*[@resource-id='com.xueqiu.android:id/content_layout']//*[@resource-id='com.xueqiu.android:id/userName' and @text='资讯'] 2023-02-20 14:39:00 INFO [FreeMind.18.stop] genereate freemind file freemind.mm 2023-02-20 14:39:00 INFO [Crawler.1296.stop] generate report finish 2023-02-20 14:39:00 INFO [Crawler.1297.stop] report in 20230216145140