顶下,接下来要搞扫描规则了。
#4 楼 @seveniruby 好主意
中文输入哈~~~~绝对大功一件
具体看 https://github.com/appium/appium/blob/master/docs/gestures.md
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap tapObject = new HashMap();
tapObject.put("x", x);
tapObject.put("y", y);
tapObject.put("duration", duration);
js.executeScript("mobile: tap", tapObject);
#28 楼 @vigossjjj 尝试过,还是有问题
#25 楼 @seveniruby 或者写个方法,用来生成一个 tree,每次点击后去记录点击的元素,和点击后的特征点,然后根据这个去判断是否点击过。。之后每次只要根据这个 tree 的结构去做遍历。不过怎么都很麻烦。
#25 楼 @seveniruby 我之前也尝试写过对所有可点击元素进行遍历的方法。。。遇到的问题:
第一,如何来过滤同一个实现但重复的可点击元素,我看这里是用元素的像素差异来做的判断,于是就有第二个问题。
第二,对于一些布局上是嵌套的元素,外层和内层都是可点击的,但是两者的实现是不同的,用像素差异来判断就有问题。
第三,某元素点击后是在当前页隐藏或者显示某些元素 (比如呼出新的菜单),这会导致 dom tree 发生变化。
通过检查 clickable 来找可点击的元素,这会导致找到很多多余的东西
分两步,先去找 HorizontalScrollView/LinerLayout 这个元素,然后在这个元素里再 find_elements 试下