界面xml的简单提取
Posted 3分钟学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了界面xml的简单提取相关的知识,希望对你有一定的参考价值。
总有问全分辨率(无视分辨率)的脚本怎么写,通常我们就是获取界面的xml,然后在提取里面想要的内容。
1、获取界面xml(注:不是所有的界面都可以获取的xml)
Import "shanhai.lua"
Dim _xml=shanhai.getuixml()
TracePrint _xml
2、xml内容简单分析
右键复制xml,然后粘贴到文本里面
把这一段代码复制到文本以后,用搜索功能ctrl+f,查找要找的东西。
3、提取xml的文字
Import "shanhai.lua"
Dim _xml=shanhai.getuixml()
TracePrint _xml
dim content=shanhai.RegexFind(_xml,"text=""([^""]+)")
For Each k In content
TracePrint k
Next
4、根据文字点击(比较常用)
Import "shanhai.lua"
Dim _xml=shanhai.getuixml()
TracePrint _xml
Call click("设置")
Function click(n)
Dim xy=shanhai.regexfind(shanhai.findxmlkey(_xml,"text",n,"bounds"),"%d+")
If Len(xy(0)) = 0 Then
xy=shanhai.regexfind(shanhai.findxmlkey(_xml,"content-desc",n,"bounds"),"%d+")
End If
TracePrint xy(0),xy(1)
// Tap xy(0),xy(1)
End Function
5、点击包含指定文字的节点
比如 一段文字是“100人在看”,我们希望点击只要文字中含有“人在看”这几个字的节点。
Import "shanhai.lua"
Dim _xml=shanhai.getuixml()
TracePrint _xml
dim content=shanhai.RegexFind(_xml,"text=""([^""]+)")
For Each k In content
If InStr(1, k, "系统")>0 Then
click(k)
End If
Next
Function click(n)
Dim xy=shanhai.regexfind(shanhai.findxmlkey(_xml,"text",n,"bounds"),"%d+")
If Len(xy(0)) = 0 Then
xy=shanhai.regexfind(shanhai.findxmlkey(_xml,"content-desc",n,"bounds"),"%d+")
End If
TracePrint xy(0),xy(1)
// Tap xy(0),xy(1)
End Function
本期教程就这些。
3分钟学堂高级群开始招募会员~
从明年开始运营新的付费群了,在原有按键精灵安卓脚本问题解答的基础上,增加脚本实战,引流实战,项目分析,流量变现等内容。
目前初步定价298元/年,服务时间2020年1月1日-2020年12月31日。
我会在下月初把具体的细则以文字形式发出来。
从今天开始到11月30号做预售:
非原付费群 248元/年
原付费群 198元/年
12月1日恢复原价298元/年
关于新付费群就这些,加群联系我~
微信 xiaomu86119
QQ 453485278
加好友时说明来意
以上是关于界面xml的简单提取的主要内容,如果未能解决你的问题,请参考以下文章
使用 ElementTree 进行 Python3 xml 解析和信息提取