2018-06-28 18:06:37 INFO [Crawler.start.126] set xpath attribute with List(name, label, value, resource-id, content-desc, index, text)
2018-06-28 18:06:37 INFO [Crawler.start.129] set xpath
2018-06-28 18:06:37 INFO [Crawler.$anonfun$loadPlugins$2.74] load com.testerhome.appcrawler.plugin com.testerhome.appcrawler.plugin.FlowDiff
2018-06-28 18:06:37 INFO [Crawler.loadPlugins.82] dynamic load plugin in /Users/lianfeng/Documents/appcrawler/plugins/
2018-06-28 18:06:38 INFO [Crawler.loadPlugins.84] found dynamic plugins size 0
2018-06-28 18:06:38 INFO [Crawler.$anonfun$loadPlugins$5.86] com.testerhome.appcrawler.plugin.TagLimitPlugin@3fbe503c
2018-06-28 18:06:38 INFO [Crawler.$anonfun$loadPlugins$5.86] com.testerhome.appcrawler.plugin.ReportPlugin@3ab35b9c
2018-06-28 18:06:38 INFO [Crawler.$anonfun$loadPlugins$5.86] com.testerhome.appcrawler.plugin.FreeMind@52454457
2018-06-28 18:06:38 INFO [Crawler.$anonfun$loadPlugins$5.86] com.testerhome.appcrawler.plugin.FlowDiff@61ff6a49
2018-06-28 18:06:38 INFO [TagLimitPlugin.init.17] com.testerhome.appcrawler.plugin.TagLimitPlugin init
2018-06-28 18:06:38 INFO [ReportPlugin.init.17] com.testerhome.appcrawler.plugin.ReportPlugin init
2018-06-28 18:06:38 INFO [FreeMind.init.17] com.testerhome.appcrawler.plugin.FreeMind init
2018-06-28 18:06:38 INFO [FlowDiff.init.17] com.testerhome.appcrawler.plugin.FlowDiff init
2018-06-28 18:06:38 INFO [ReportPlugin.start.21] reportPath=/Users/lianfeng/Documents/appcrawler/ios_20180628180636
2018-06-28 18:06:38 INFO [ReportPlugin.start.24] create /Users/lianfeng/Documents/appcrawler/ios_20180628180636/tmp/ directory
2018-06-28 18:06:38 INFO [Crawler.start.132] prepare setup Appium
2018-06-28 18:06:38 INFO [Crawler.setupAppium.262] use AppiumClient
2018-06-28 18:06:51 INFO [Crawler.start.139] platformName=ios driver=com.testerhome.appcrawler.driver.AppiumClient@77a0dd63
2018-06-28 18:06:51 INFO [Crawler.start.140]
----------------
AppCrawler 2.1.3 [霍格沃兹测试学院特别纪念版]
Appium 1.7.1 Java8 support
app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器
帮助文档: https://github.com/seveniruby/AppCrawler
移动测试技术交流: https://testerhome.com
联络作者: [email protected] (思寒)
致谢: 晓光 泉龙 杨榕 恒温 mikezhou yaming116 沐木
感谢如下公司提供商业支持: Keep
--------------------------------
2018-06-28 18:06:51 INFO [Crawler.start.141] waiting for app load
2018-06-28 18:06:59 INFO [Crawler.start.143] driver=null
2018-06-28 18:06:59 INFO [Crawler.start.144] get screen info
2018-06-28 18:07:00 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:07:11 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:07:11 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:07:11 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:07:11 INFO [Crawler.parsePageContext.603] currentContentHash=8ca31381102bd01e86087f00a80e3238 lastContentHash=8ca31381102bd01e86087f00a80e3238
2018-06-28 18:07:11 INFO [Crawler.parsePageContext.607] ui not change
2018-06-28 18:07:11 INFO [Crawler.runStartupScript.236] first refresh
2018-06-28 18:07:11 INFO [Crawler.doElementAction.976] current element = 雪球股票_startupActions-Start-0
2018-06-28 18:07:11 INFO [Crawler.doElementAction.977] current index = 0
2018-06-28 18:07:11 INFO [Crawler.doElementAction.978] current action =
2018-06-28 18:07:11 INFO [Crawler.doElementAction.979] current url = 雪球股票
2018-06-28 18:07:11 INFO [Crawler.doElementAction.980] current xpath = startupActions-Start-0
2018-06-28 18:07:11 INFO [Crawler.doElementAction.981] current tag path = 雪球股票_startupActions-Start-0
2018-06-28 18:07:11 INFO [Crawler.doElementAction.982] current file name = 雪球股票_
2018-06-28 18:07:11 INFO [Crawler.doElementAction.983] current uri = 雪球股票 startupActions-Start-0 startupActions
2018-06-28 18:07:11 INFO [Crawler.doElementAction.994] just log
2018-06-28 18:07:12 INFO [Crawler.doElementAction.995] {
"url" : "雪球股票",
"tag" : "",
"id" : "",
"name" : "startupActions",
"loc" : "startupActions-Start-0"
}
2018-06-28 18:07:12 INFO [Crawler.doElementAction.1081] mark image exist
2018-06-28 18:07:12 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:07:23 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:07:23 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:07:23 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:07:23 INFO [Crawler.parsePageContext.603] currentContentHash=1b8bcd00cb3955d00a7ac002db6e50e5 lastContentHash=8ca31381102bd01e86087f00a80e3238
2018-06-28 18:07:23 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:07:23 INFO [Crawler.saveDom.912] save to ios_20180628180636/0_雪球股票_.dom
2018-06-28 18:07:24 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:07:24 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:07:25 INFO [Crawler.saveScreen.958] screenshot success
2018-06-28 18:07:25 INFO [Crawler.start.157] run steps
2018-06-28 18:07:25 INFO [Crawler.runSteps.243] run testcases
2018-06-28 18:07:25 INFO [Crawler.doElementAction.976] current element = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:25 INFO [Crawler.doElementAction.977] current index = 1
2018-06-28 18:07:25 INFO [Crawler.doElementAction.978] current action = driver.swipe(0.9, 0.5, 0.1, 0.5)
2018-06-28 18:07:25 INFO [Crawler.doElementAction.979] current url = Steps
2018-06-28 18:07:25 INFO [Crawler.doElementAction.980] current xpath = //*[@label="雪球股票"]
2018-06-28 18:07:25 INFO [Crawler.doElementAction.981] current tag path = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:25 INFO [Crawler.doElementAction.982] current file name = Steps_雪球股票
2018-06-28 18:07:25 INFO [Crawler.doElementAction.983] current uri = Steps //*[@label="雪球股票"] XCUIElementTypeApplication 雪球股票
2018-06-28 18:07:30 INFO [Crawler.doElementAction.1078] use last clicked image replace mark
2018-06-28 18:07:30 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:07:42 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:07:42 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:07:42 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:07:42 INFO [Crawler.parsePageContext.603] currentContentHash=3038be1b931bf39135ce0a309214973f lastContentHash=1b8bcd00cb3955d00a7ac002db6e50e5
2018-06-28 18:07:42 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:07:42 INFO [Crawler.saveDom.912] save to ios_20180628180636/1_Steps_雪球股票.dom
2018-06-28 18:07:42 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:07:42 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:07:43 INFO [Crawler.saveScreen.958] screenshot success
2018-06-28 18:07:43 INFO [Crawler.doElementAction.976] current element = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:43 INFO [Crawler.doElementAction.977] current index = 2
2018-06-28 18:07:43 INFO [Crawler.doElementAction.978] current action = driver.swipe(0.9, 0.5, 0.1, 0.5)
2018-06-28 18:07:43 INFO [Crawler.doElementAction.979] current url = Steps
2018-06-28 18:07:43 INFO [Crawler.doElementAction.980] current xpath = //*[@label="雪球股票"]
2018-06-28 18:07:43 INFO [Crawler.doElementAction.981] current tag path = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:43 INFO [Crawler.doElementAction.982] current file name = Steps_雪球股票
2018-06-28 18:07:43 INFO [Crawler.doElementAction.983] current uri = Steps //*[@label="雪球股票"] XCUIElementTypeApplication 雪球股票
2018-06-28 18:07:46 INFO [Crawler.doElementAction.1078] use last clicked image replace mark
2018-06-28 18:07:46 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:07:58 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:07:58 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:07:58 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:07:58 INFO [Crawler.parsePageContext.603] currentContentHash=e44feef0ca643f8b434ddd1dbef2b03f lastContentHash=3038be1b931bf39135ce0a309214973f
2018-06-28 18:07:58 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:07:58 INFO [Crawler.saveDom.912] save to ios_20180628180636/2_Steps_雪球股票.dom
2018-06-28 18:07:58 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:07:58 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:07:59 INFO [Crawler.saveScreen.958] screenshot success
2018-06-28 18:07:59 INFO [Crawler.doElementAction.976] current element = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:59 INFO [Crawler.doElementAction.977] current index = 3
2018-06-28 18:07:59 INFO [Crawler.doElementAction.978] current action = driver.swipe(0.9, 0.5, 0.1, 0.5)
2018-06-28 18:07:59 INFO [Crawler.doElementAction.979] current url = Steps
2018-06-28 18:07:59 INFO [Crawler.doElementAction.980] current xpath = //*[@label="雪球股票"]
2018-06-28 18:07:59 INFO [Crawler.doElementAction.981] current tag path = Steps_//*[@label="雪球股票"]
2018-06-28 18:07:59 INFO [Crawler.doElementAction.982] current file name = Steps_雪球股票
2018-06-28 18:07:59 INFO [Crawler.doElementAction.983] current uri = Steps //*[@label="雪球股票"] XCUIElementTypeApplication 雪球股票
2018-06-28 18:08:02 INFO [Crawler.doElementAction.1078] use last clicked image replace mark
2018-06-28 18:08:02 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:08:13 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:08:13 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:08:13 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:08:13 INFO [Crawler.parsePageContext.603] currentContentHash=6b34e6e3a22e9334db5d4d95f0f609c5 lastContentHash=e44feef0ca643f8b434ddd1dbef2b03f
2018-06-28 18:08:13 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:08:13 INFO [Crawler.saveDom.912] save to ios_20180628180636/3_Steps_雪球股票.dom
2018-06-28 18:08:14 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:08:14 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:08:15 INFO [Crawler.saveScreen.958] screenshot success
2018-06-28 18:08:15 INFO [Crawler.doElementAction.976] current element = Steps_//*[@label="雪球股票"]
2018-06-28 18:08:15 INFO [Crawler.doElementAction.977] current index = 4
2018-06-28 18:08:15 INFO [Crawler.doElementAction.978] current action = driver.swipe(0.9, 0.5, 0.1, 0.5)
2018-06-28 18:08:15 INFO [Crawler.doElementAction.979] current url = Steps
2018-06-28 18:08:15 INFO [Crawler.doElementAction.980] current xpath = //*[@label="雪球股票"]
2018-06-28 18:08:15 INFO [Crawler.doElementAction.981] current tag path = Steps_//*[@label="雪球股票"]
2018-06-28 18:08:15 INFO [Crawler.doElementAction.982] current file name = Steps_雪球股票
2018-06-28 18:08:15 INFO [Crawler.doElementAction.983] current uri = Steps //*[@label="雪球股票"] XCUIElementTypeApplication 雪球股票
2018-06-28 18:08:17 INFO [Crawler.doElementAction.1078] use last clicked image replace mark
2018-06-28 18:08:17 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:08:29 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:08:29 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:08:29 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:08:29 INFO [Crawler.parsePageContext.603] currentContentHash=a2443c70faf9197c22dbb4bd51210aa7 lastContentHash=6b34e6e3a22e9334db5d4d95f0f609c5
2018-06-28 18:08:29 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:08:29 INFO [Crawler.saveDom.912] save to ios_20180628180636/4_Steps_雪球股票.dom
2018-06-28 18:08:29 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:08:29 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:08:30 INFO [Crawler.saveScreen.958] screenshot success
2018-06-28 18:08:30 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:08:42 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:08:42 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:08:42 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:08:42 INFO [Crawler.parsePageContext.603] currentContentHash=13287a8a02660eac2804bc5dc36715bd lastContentHash=a2443c70faf9197c22dbb4bd51210aa7
2018-06-28 18:08:42 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:08:42 INFO [Crawler.handleCtrlC.1165] add shutdown hook
2018-06-28 18:08:42 INFO [Crawler.crawl.722]
crawl next
2018-06-28 18:08:42 INFO [Crawler.needReturn.419] urlStack=Stack(雪球股票) baseUrl=List(.*MainActivity, .*SNBHomeView.*) maxDepth=3
2018-06-28 18:08:42 INFO [Crawler.crawl.777] no need to back
2018-06-28 18:08:42 INFO [Crawler.getSelectedNodes.491] selected nodes size = 29
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 0, name -> , XCUIElementTypeOther -> null, visible -> false, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> , height -> 20, xpath -> //*[@label="雪球股票"]/XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther, type -> XCUIElementTypeOther, width -> 320, value -> )
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 0, name -> , XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> , height -> 20, xpath -> //*[@label="雪球股票"]/XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther, type -> XCUIElementTypeOther, width -> 320, value -> )
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 4, XCUIElementTypeButton -> null, name -> 返回“酷学英语”, visible -> true, y -> 0, tag -> XCUIElementTypeButton, enabled -> true, label -> 返回“酷学英语”, height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="返回“酷学英语”"], type -> XCUIElementTypeButton, width -> 66, value -> )
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 77, name -> 3 格无线局域网信号(共 3 格), XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> 3 格无线局域网信号(共 3 格), height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="3 格无线局域网信号(共 3 格)" and @value="SSID"], type -> XCUIElementTypeOther, width -> 13, value -> SSID)
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 136, name -> 下午6:08, XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> 下午6:08, height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="下午6:08"], type -> XCUIElementTypeOther, width -> 53, value -> )
2018-06-28 18:08:42 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit //*[contains(name(), 'StatusBar')]//* Map(x -> 282, name -> 电池电量:100%, 正在充电, XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> 电池电量:100%, 正在充电, height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="电池电量:100%, 正在充电"], type -> XCUIElementTypeOther, width -> 33, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 15, XCUIElementTypeButton -> null, name -> profile 90, visible -> true, y -> 26, tag -> XCUIElementTypeButton, enabled -> true, label -> profile 90, height -> 32, xpath -> //XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@label="profile 90"], type -> XCUIElementTypeButton, width -> 32, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 78, name -> 14, visible -> true, y -> 23, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 14, height -> 13, xpath -> //XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@label="14" and @value="14"], type -> XCUIElementTypeStaticText, width -> 18, value -> 14)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 16, name -> 乐视网 -8.36%, visible -> true, y -> 417, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 乐视网 -8.36%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="乐视网 -8.36%" and @value="乐视网 -8.36%"], type -> XCUIElementTypeStaticText, width -> 100, value -> 乐视网 -8.36%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 126, name -> 毛老四 · 97评论, visible -> true, y -> 419, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 毛老四 · 97评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="毛老四 · 97评论" and @value="毛老四 · 97评论"], type -> XCUIElementTypeStaticText, width -> 103, value -> 毛老四 · 97评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 16, name -> 以前我一直认为傻毛的粉丝都是煞笔,智障,脑残,我发现我还是错了,雪球最底端的粉丝群体其实是贾跃亭粉和乐视粉,傻毛的粉丝其实整体素质还可以,我观察了一下,傻毛的粉丝虽然大部分受教育程度是小学,但是毕竟社会经验丰富,而且90%从事的也都是高收入行业,比如地铁装残废骗钱,假扮高官骗色..., XCUIElementTypeOther -> null, visible -> true, y -> 328, tag -> XCUIElementTypeOther, enabled -> true, label -> 以前我一直认为傻毛的粉丝都是煞笔,智障,脑残,我发现我还是错了,雪球最底端的粉丝群体其实是贾跃亭粉和乐视粉,傻毛的粉丝其实整体素质还可以,我观察了一下,傻毛的粉丝虽然大部分受教育程度是小学,但是毕竟社会经验丰富,而且90%从事的也都是高收入行业,比如地铁装残废骗钱,假扮高官骗色..., height -> 83, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="以前我一直认为傻毛的粉丝都是煞笔,智障,脑残,我发现我还是错了,雪球最底端的粉丝群体其实是贾跃亭粉和乐视粉,傻毛的粉丝其实整体素质还可以,我观察了一下,傻毛的粉丝虽然大部分受教育程度是小学,但是毕竟社会经验丰富,而且90%从事的也都是高收入行业,比如地铁装残废骗钱,假扮高官骗色..."], type -> XCUIElementTypeOther, width -> 174, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 16, name -> 中兴通讯 +0.54%, visible -> false, y -> 656, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 中兴通讯 +0.54%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="中兴通讯 +0.54%" and @value="中兴通讯 +0.54%"], type -> XCUIElementTypeStaticText, width -> 112, value -> 中兴通讯 +0.54%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 138, name -> RabitRun · 224评论, visible -> false, y -> 658, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> RabitRun · 224评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="RabitRun · 224评论" and @value="RabitRun · 224评论"], type -> XCUIElementTypeStaticText, width -> 127, value -> RabitRun · 224评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 16, name -> 宁南山关于中兴事件的新文章。非常好的文章,还原很多细节(其实都谈不上什么“细节”,都是最公开的东西),但可能很多人根本不知道来龙去脉。他是最舍得花时间看原始材料的。 $中兴通讯(SZ000063)$ 网页链接 宁南山本尊:@宁南山, XCUIElementTypeOther -> null, visible -> false, y -> 567, tag -> XCUIElementTypeOther, enabled -> true, label -> 宁南山关于中兴事件的新文章。非常好的文章,还原很多细节(其实都谈不上什么“细节”,都是最公开的东西),但可能很多人根本不知道来龙去脉。他是最舍得花时间看原始材料的。 $中兴通讯(SZ000063)$ 网页链接 宁南山本尊:@宁南山, height -> 83, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="宁南山关于中兴事件的新文章。非常好的文章,还原很多细节(其实都谈不上什么“细节”,都是最公开的东西),但可能很多人根本不知道来龙去脉。他是最舍得花时间看原始材料的。 $中兴通讯(SZ000063)$ 网页链接 宁南山本尊:@宁南山"], type -> XCUIElementTypeOther, width -> 288, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 灰色钻石 · 182评论, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 灰色钻石 · 182评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="灰色钻石 · 182评论" and @value="灰色钻石 · 182评论"], type -> XCUIElementTypeStaticText, width -> 123, value -> 灰色钻石 · 182评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 巴菲特致股东的信(1960):买入低估股票并等待估值修复, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 巴菲特致股东的信(1960):买入低估股票并等待估值修复, height -> 51, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="巴菲特致股东的信(1960):买入低估股票并等待估值修复" and @value="巴菲特致股东的信(1960):买入低估股票并等待估值修复"], type -> XCUIElementTypeStaticText, width -> 288, value -> 巴菲特致股东的信(1960):买入低估股票并等待估值修复)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 华夏沪深300ETF, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 华夏沪深300ETF, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="华夏沪深300ETF" and @value="华夏沪深300ETF"], type -> XCUIElementTypeStaticText, width -> 90, value -> 华夏沪深300ETF)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 道指ETF-SPDR -0.64%, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 道指ETF-SPDR -0.64%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="道指ETF-SPDR -0.64%" and @value="道指ETF-SPDR -0.64%"], type -> XCUIElementTypeStaticText, width -> 150, value -> 道指ETF-SPDR -0.64%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 15评论, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 15评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="15评论" and @value="15评论"], type -> XCUIElementTypeStaticText, width -> 42, value -> 15评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 招商银行 -1.82%, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 招商银行 -1.82%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="招商银行 -1.82%" and @value="招商银行 -1.82%"], type -> XCUIElementTypeStaticText, width -> 110, value -> 招商银行 -1.82%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 复星医药2017年度股东大会交流, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 复星医药2017年度股东大会交流, height -> 26, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="复星医药2017年度股东大会交流" and @value="复星医药2017年度股东大会交流"], type -> XCUIElementTypeStaticText, width -> 288, value -> 复星医药2017年度股东大会交流)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 静水流深道悟思静 · 18评论, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 静水流深道悟思静 · 18评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="静水流深道悟思静 · 18评论" and @value="静水流深道悟思静 · 18评论"], type -> XCUIElementTypeStaticText, width -> 127, value -> 静水流深道悟思静 · 18评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 复星医药 -3.44%, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 复星医药 -3.44%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="复星医药 -3.44%" and @value="复星医药 -3.44%"], type -> XCUIElementTypeStaticText, width -> 112, value -> 复星医药 -3.44%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 正合奇胜天舒 · 83评论, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 正合奇胜天舒 · 83评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="正合奇胜天舒 · 83评论" and @value="正合奇胜天舒 · 83评论"], type -> XCUIElementTypeStaticText, width -> 127, value -> 正合奇胜天舒 · 83评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> **恒大 -4.56%, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> **恒大 -4.56%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="**恒大 -4.56%" and @value="**恒大 -4.56%"], type -> XCUIElementTypeStaticText, width -> 112, value -> **恒大 -4.56%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 兴隆旺仔 · 77评论, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 兴隆旺仔 · 77评论, height -> 20, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="兴隆旺仔 · 77评论" and @value="兴隆旺仔 · 77评论"], type -> XCUIElementTypeStaticText, width -> 116, value -> 兴隆旺仔 · 77评论)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 0, name -> 中兴通讯 +0.54%, visible -> false, y -> 0, XCUIElementTypeStaticText -> null, tag -> XCUIElementTypeStaticText, enabled -> true, label -> 中兴通讯 +0.54%, height -> 24, xpath -> //XCUIElementTypeCell/XCUIElementTypeOther/XCUIElementTypeCell/*[@label="中兴通讯 +0.54%" and @value="中兴通讯 +0.54%"], type -> XCUIElementTypeStaticText, width -> 112, value -> 中兴通讯 +0.54%)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 130, XCUIElementTypeButton -> null, name -> 动态, visible -> true, y -> 520, tag -> XCUIElementTypeButton, enabled -> true, label -> 动态, height -> 48, xpath -> //XCUIElementTypeWindow/XCUIElementTypeOther/XCUIElementTypeTabBar/*[@label="动态" and @value="98 项"], type -> XCUIElementTypeButton, width -> 60, value -> 98 项)
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 136, name -> 下午6:08, XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> 下午6:08, height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="下午6:08"], type -> XCUIElementTypeOther, width -> 53, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit .*[0-9]{2}.* Map(x -> 282, name -> 电池电量:100%, 正在充电, XCUIElementTypeOther -> null, visible -> true, y -> 0, tag -> XCUIElementTypeOther, enabled -> true, label -> 电池电量:100%, 正在充电, height -> 20, xpath -> //XCUIElementTypeWindow/XCUIElementTypeStatusBar/XCUIElementTypeOther/*[@label="电池电量:100%, 正在充电"], type -> XCUIElementTypeOther, width -> 33, value -> )
2018-06-28 18:08:43 INFO [Crawler.$anonfun$getSelectedNodes$7.498] blackList hit cut Map(x -> 272, XCUIElementTypeButton -> null, name -> icon shortcut day, visible -> true, y -> 26, tag -> XCUIElementTypeButton, enabled -> true, label -> icon shortcut day, height -> 32, xpath -> //XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@label="icon shortcut day"], type -> XCUIElementTypeButton, width -> 32, value -> )
2018-06-28 18:08:43 INFO [Crawler.getSelectedNodes.504] all - black elements size = 22
2018-06-28 18:08:43 INFO [Crawler.getSelectedNodes.509] all - small elements size = 22
2018-06-28 18:08:43 INFO [Crawler.getSelectedNodes.539] all - backButton size=22
2018-06-28 18:08:43 INFO [Crawler.getAvailableElement.699] all elements size=22
2018-06-28 18:08:43 INFO [Crawler.getAvailableElement.703] all - clicked size=22
2018-06-28 18:08:43 INFO [Crawler.getAvailableElement.707] all - skiped fresh elements size=22
2018-06-28 18:08:43 INFO [Crawler.crawl.786] found 雪球股票_//XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"] by first available element
2018-06-28 18:08:43 INFO [Crawler.getActionFromNormalActions.854] normal actions size = 1
2018-06-28 18:08:43 INFO [Crawler.setElementAction.660] set action to click
2018-06-28 18:08:43 INFO [Crawler.doElementAction.976] current element = 雪球股票_//XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"]
2018-06-28 18:08:43 INFO [Crawler.doElementAction.977] current index = 5
2018-06-28 18:08:43 INFO [Crawler.doElementAction.978] current action = click
2018-06-28 18:08:43 INFO [Crawler.doElementAction.979] current url = 雪球股票
2018-06-28 18:08:43 INFO [Crawler.doElementAction.980] current xpath = //XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"]
2018-06-28 18:08:43 INFO [Crawler.doElementAction.981] current tag path = 雪球股票_//XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"]
2018-06-28 18:08:43 INFO [Crawler.doElementAction.982] current file name = 雪球股票_宝粉狂欢节
2018-06-28 18:08:43 INFO [Crawler.doElementAction.983] current uri = 雪球股票 //XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"] XCUIElementTypeTextField 宝粉狂欢节
2018-06-28 18:08:43 INFO [Crawler.doElementAction.1039] need input click
2018-06-28 18:09:30 INFO [Crawler.doElementAction.1044] mark ios_20180628180636/4_Steps_雪球股票.clicked.png to ios_20180628180636/5_雪球股票_宝粉狂欢节.click.png
2018-06-28 18:09:30 INFO [Crawler.$anonfun$doElementAction$2.1052] click element
2018-06-28 18:09:31 INFO [Crawler.doElementAction.1081] mark image exist
2018-06-28 18:09:31 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:10:31 WARN [Crawler.refreshPage.562] page source get fail, go back
2018-06-28 18:10:31 INFO [Crawler.setElementAction.660] set action to back
2018-06-28 18:10:31 INFO [Crawler.saveDom.912] save to ios_20180628180636/5_雪球股票_宝粉狂欢节.dom
2018-06-28 18:10:31 ERROR [Crawler.saveDom.918] save to ios_20180628180636/5_雪球股票_宝粉狂欢节.dom error
2018-06-28 18:10:31 ERROR [Crawler.saveDom.919]
2018-06-28 18:10:31 ERROR [Crawler.saveDom.920]
2018-06-28 18:10:31 ERROR [Crawler.saveDom.921] [Ljava.lang.StackTraceElement;@5581e273
2018-06-28 18:10:31 INFO [Crawler.saveScreen.934] start screenshot
2018-06-28 18:10:31 INFO [Crawler.$anonfun$saveScreen$2.937] ui change screenshot again
2018-06-28 18:11:31 ERROR [Crawler.saveScreen.961] screenshot error
2018-06-28 18:11:31 INFO [Crawler.afterElementAction.644] backRetry=1
2018-06-28 18:11:31 INFO [Crawler.afterElementAction.646] afterElementAction eval
2018-06-28 18:11:31 INFO [TagLimitPlugin.afterElementAction.51] tagLimit[雪球股票_//XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/*[@value="宝粉狂欢节"]]=1
2018-06-28 18:11:31 INFO [ReportPlugin.afterElementAction.35] clickedElementsList size = 6
2018-06-28 18:11:31 ERROR [Crawler.crawl.203] crawl not finish, return with exception
2018-06-28 18:11:31 ERROR [Crawler.crawl.204]
2018-06-28 18:11:31 ERROR [Crawler.crawl.205] NullPointerException:
2018-06-28 18:11:31 ERROR [Crawler.crawl.206]
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] java.lang.NullPointerException
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.URIElementStore.saveResDom(URIElementStore.scala:77)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.plugin.FlowDiff.afterElementAction(FlowDiff.scala:19)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.$anonfun$afterElementAction$2(Crawler.scala:649)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.$anonfun$afterElementAction$2$adapted(Crawler.scala:649)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.collection.immutable.List.foreach(List.scala:389)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.afterElementAction(Crawler.scala:649)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.crawl(Crawler.scala:834)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.$anonfun$crawl$1(Crawler.scala:180)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at scala.util.Try$.apply(Try.scala:209)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.crawl(Crawler.scala:180)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.Crawler.start(Crawler.scala:164)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.AppCrawler$.startCrawl(AppCrawler.scala:344)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.AppCrawler$.parseParams(AppCrawler.scala:312)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.AppCrawler$.main(AppCrawler.scala:92)
2018-06-28 18:11:31 ERROR [Crawler.$anonfun$crawl$4.207] at com.testerhome.appcrawler.AppCrawler.main(AppCrawler.scala)
2018-06-28 18:11:31 ERROR [Crawler.crawl.208] create new session
2018-06-28 18:11:31 INFO [Crawler.restart.223] restart appium
2018-06-28 18:11:31 INFO [Crawler.restart.225] set app to null to restart appium
2018-06-28 18:11:31 INFO [Crawler.setupAppium.262] use AppiumClient
2018-06-28 18:11:55 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:12:08 INFO [Crawler.parsePageContext.572] appName = 雪球股票
2018-06-28 18:12:08 INFO [Crawler.getUrl.332] defineUrl=
2018-06-28 18:12:08 INFO [Crawler.parsePageContext.576] url=雪球股票
2018-06-28 18:12:08 INFO [Crawler.parsePageContext.603] currentContentHash=5a4c872da539583a11eb0bdb27b6c1d1 lastContentHash=13287a8a02660eac2804bc5dc36715bd
2018-06-28 18:12:08 INFO [Crawler.parsePageContext.605] ui change
2018-06-28 18:12:08 INFO [Crawler.doElementAction.976] current element = 雪球股票_restart-6
2018-06-28 18:12:08 INFO [Crawler.doElementAction.977] current index = 6
2018-06-28 18:12:08 INFO [Crawler.doElementAction.978] current action =
2018-06-28 18:12:08 INFO [Crawler.doElementAction.979] current url = 雪球股票
2018-06-28 18:12:08 INFO [Crawler.doElementAction.980] current xpath = restart-6
2018-06-28 18:12:08 INFO [Crawler.doElementAction.981] current tag path = 雪球股票_restart-6
2018-06-28 18:12:08 INFO [Crawler.doElementAction.982] current file name = 雪球股票_
2018-06-28 18:12:08 INFO [Crawler.doElementAction.983] current uri = 雪球股票 restart-6 restart
2018-06-28 18:12:08 INFO [Crawler.doElementAction.994] just log
2018-06-28 18:12:08 INFO [Crawler.doElementAction.995] {
"url" : "雪球股票",
"tag" : "",
"id" : "",
"name" : "restart",
"loc" : "restart-6"
}
2018-06-28 18:12:08 INFO [Crawler.doElementAction.1078] use last clicked image replace mark
2018-06-28 18:12:08 INFO [Crawler.refreshPage.554] refresh page
2018-06-28 18:12:14 INFO [Crawler.$anonfun$handleCtrlC$1.1167] exit by INT
2018-06-28 18:12:14 INFO [Crawler.stop.1147] ctrl c interval = 337155
2018-06-28 18:12:14 INFO [Crawler.$anonfun$handleCtrlC$1.1167] exit by INT
2018-06-28 18:12:14 INFO [Crawler.stop.1147] ctrl c interval = 334
2018-06-28 18:12:14 INFO [FreeMind.stop.17] genereate freemind file freemind.mm
2018-06-28 18:12:14 INFO [FreeMind.stop.17] genereate freemind file freemind.mm
2018-06-28 18:12:14 INFO [Crawler.stop.1156] generate report finish
2018-06-28 18:12:14 INFO [Crawler.stop.1156] generate report finish