最近在做一个自动化测试项目,遇到公众号元素定位无法找到的情况,通过uiautomator查看元素,按钮有text值,试了很多方法,通过xpath的@text方法没找到,后来也通过层级也没找到,而且找元素的等待时间我也都设置的30s,姑且认为我的xpath写法是正确的,总之就是没找到的这个元素
如果是原生Android app,不涉及H5,目前我还从未遇到@text找不到元素的情况,但这里因为是公众号里面的元素,属于在微信APP里面的H5界面,可能也确实会因为一些我目前知识面所未触及的情况找不到元素
到这里,其实上面我已经耽误了很长时间来解决这个问题了,按照我之前的思路,从uiautomator查看元素没一次试验成功过
后来,经多方了解,发现了一个简单好用的方法,几秒钟就可以快速定位元素,不失为一种你尝试过很多方法仍旧解决不了的救命稻草
1、第一步
复制H5页面链接,用谷歌浏览器打开,控制台点击手机模式,我这里只是为了大图演示,就不切换手机模式了
2、第二步
选中我要选的元素,比如我这里想定位标题,直接右键点击,copy, copy xpath即可完成元素xpath路径的提取
接下来验证我们复制的xpath路径,在console控制台下,输入$x('复制的xpath路径粘贴到这里'),可以很明显看到标题内容被我们提取到
可能你会说,这个不过瘾,感觉是可有可无的,他复制的xpath路径里面也是通过id选择的,这个一般不会错,自己也很容易就写出来了
那么大招来了,假如我让你提取正文内容呢,并且正文中元素文本一样,标签一样,id一样,你怎么办?比如下方,就是这种情况
如果你自己写xpath,恐怕要自己去数层级关系了,属于第几个元素,不光慢,还容易出错,如果尝试复制xpath路径,很完美,层级下标都给我们复制出来了
总结:
这种方法如果感兴趣可以用用,一般爬虫和web上我一般很少用,也是在测H5页面的时候走投无路了,才用这个方法,不过有个缺点,有些时候,你复制的xpath路径可能很长很长,不利于直观的去看
python爬虫人工智能大数据公众号