繁体   English   中英

Android:测量两个活动页面之间的相似性

[英]Android: measuring similarity between two activity pages

我正在使用monkeyrunner和androidviewclient来抓取一些Android应用程序的GUI(即, 这个 )。 顺便说一句,它工作得很好! 问题是,有时候当你点击一个可点击的组件时,它会打开你所在的同一个页面,或者你之前就已经使用过它。 例如,您位于应用程序的主目录中,然后单击主页链接或应用程序徽标,然后转到同一页面(即应用程序的主目录!)。 我想避免这种情况。 换句话说,这可能导致无限循环的点击。 是否有任何想法或启发式方法来衡量两个活动页面之间的相似性。 或者我应该问,哪些指标有利于衡量两个页面之间的相似性,元素数量,文本等。

转储树后,您可以保存它,然后对新转储使用一些距离计算。 例如:

# dump the tree
tree1 = vc.dump()
# do something, here, like touch to navigate
someView.touch()
# dump again
tree2 = vc.dump()
# calculate the distance
d = distance(tree1, tree2)

显然,诀窍在于如何选择距离法。 您可以将树转换为字符串,然后计算汉明距离(如果长度相同)或Levenshtein距离(如果不是)。

我一直在某些项目上使用这种方法。 你应该考虑应用后者的唯一方法是字符串的大小,因为矩阵变得非常大。 未来版本的AndroidViewClient将包含其中一些功能。

或者,您可以按照此处的描述进行一些视觉比较。

您可能正在寻找XMLUnit, http://xmlunit.sourceforge.net/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM