小伙伴们大家好,不少同学在写微信或者其他应用的脚本的时候经常会很头疼识别的问题。找字的效率太低并且不怎么稳定,找多点如果特征没取好又容易误判,同时还有不同分辨率不同dpi的困扰,实在是让人抓狂 .但是我说我都使用找图找色就能识别出特征的位置,你信么 |
>>>> 插件教程目录 <<<<相关命令:
命令名称: | GetUIXml |
命令功能: | 获取界面UIXML信息 |
参数: | 无 |
返回值: | 返回获取到的XML信息 |
我们就以找安卓按键精灵界面界面上的社区按钮坐标为范例
范例:- Import "shanhai.lua"
- Dim UI_XML, sPos, ePos, XY
- // 获取当前界面的XML信息
- UI_XML = shanhai.GetUIXml()
- // 查找“社区”按钮的位置信息
- sPos = InStr(1, UI_XML, "社区")
- sPos = InStr(sPos, UI_XML, "bounds=")
- sPos = InStr(sPos, UI_XML, "[")
- ePos = InStr(sPos, UI_XML, "]")
- sPos = sPos + 1
- XY = mid(UI_XML, sPos, ePos - sPos)
- // 分割提取出坐标
- Dim arrXY = Split(XY,",")
- TracePrint "社区按钮的坐标为:" & arrXY(0) & "x" & arrXY(1)
复制代码这个命令的神奇的地方就在于可以把应用的界面信息读取转换成为XML的信息。这样在界面上的一些文字或者按钮之类的控件就可以在XML里找到对应的信息,其中就包括了坐标的信息。
我们就以上面的范例来分析下XML文件,看下如何从里面获取到对应控件的坐标
我们先看下获取到的XML信息:
- 您所在的用户组无法下载或查看附件
看到这么多的信息先不急,我们直接找想要的就行了,直接搜索“社区”,把这附近的代码单独拿出来看
- 您所在的用户组无法下载或查看附件
其中“bounds”后面中括号里的坐标,第一个坐标就是这个社区的左上角坐标,第二个是右下角的坐标,我们提取左上角的就可以使用了。