(1) 特殊元素的ID设定
用前面的方法设定文本框和键盘的ID后,文本框ID应再加上序号,即树中第几个文框。键盘ID再加上当前有输入焦点的元素的ID。
(2)登录的相关操作
需要对登录界面进行识别,从而输入用户名和密码,登录界面的特征比较明显,当界面中出现文本框、密码框和登录按钮时,即可判断为登录界面。
(3)忽略不可再现的元素
当访问一个非访问完全的元素时,应记录上一次访问该元素时其gCnt和rCnt的差值,如果此次访问时的差值与上一次相同,应该忽略掉这个元素。
这种情况的出现往往是由于元素的产生元素中有不可再现的元素,所以应该忽略。
(4)不可视元素的操作
可以看出本文对元素的遍历顺序是先访问可视的元素,对于不可视的元素需要调用某种方法将其拖拽到可视区域之后再进行操作,如在IOS上用scrollToVisible,Android上用scrollIntoView等方法,如果拖拽失败则放弃对该元素的访问。
(5)不可用元素的操作
有些元素在访问时不可用,可以直接忽略,也可以在历史记录中加一个参数disabledTimes,如果元素在访问时不可用即将disabledTimes增1,如果该元素当前可用,而disabledTime等于visitTimes,则将此元素视为未访问过的元素,访问之后将disabledTimes设为-1即可。
(6)文本框的操作
文本框的操作点击即可,实际的输入由键盘的操作完成,也可以简单地用某种方法直接设定文本实现对文本框的输入,在手机app中文本框往往有一个初始值,如“请输入订单号”等,遍历程序可以根据这种初始值来设定输入的具体内容。
(7)界面跳转元素的判定
可以通过元素名称来判断,如有“返回”、“关闭”、“go back”等字样的元素。如果不能通过元素的名称判断出哪些元素可以引起界面跳转,可以考虑屏幕最左上角的按钮和左下角的按钮,往往可以起到返回主界面的做用。
(8)遍历结束的判断
但当状态突破超过一定次数,而仍无可访问的元素时,遍历程序也就该结束了。