折腾:
【未解决】uiautomator2模拟安卓浏览器的百度搜索后去获取和解析搜索结果
期间,发现此处通过
d.dump_hierarchy(compressed=False, pretty=False)
获取到的xml源码:没有包含页面中看到的内容,即百度搜索crifan的最新结果
所以去搞清楚怎么回事
uiautomator2/debug/pageSourceXml/baidu_search_crifan_result_pageSource.xml

另外看了看:content-desc=“
都是系统的相关元素值,比如:
- content-desc=”3G 手机信号满格。”
- content-desc=”WLAN 信号满格。”
- content-desc=”正在充电,已完成百分之100。”
也没有有效的搜索结果值

去用weditor调试看看,能否看到搜索结果列表元素

title是没有的。
倒是有 description 描述:


-》此处获取的页面xml源码中,却没看到
-》估计是:之前经历过的,页面没刷新?
去想办法刷新看看
参考自己之前的:
def u2ServiceRestart(self): """ restart uiautomator2 service """ # self.driver.reset_uiautomator() # self.driver.service.stop() # self.driver.service.start() self.driver.service("uiautomator").stop() self.driver.service("uiautomator").start() # self.driver.uiautomator.stop() # self.driver.uiautomator.start() time.sleep(1)
去试试
代码:
d.service("uiautomator").stop() d.service("uiautomator").start() time.sleep(1)
重启的相关日志:
[D 210409 _init__:764] restart-uiautomator since "UiAutomation not connected" [D 210409 _init__:817] Device: Redmi, orga4pmzee4ts47t [D 210409 _init__:823] stop app: com.github.uiautomator [D 210409 _init__:827] kill process(ps): uiautomator [D 210409 _init__:840] uiautomator-v2 is starting ... left: 40.0s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 39.0s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 38.0s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 36.9s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 35.9s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 34.9s [D 210409 _init__:840] uiautomator-v2 is starting ... left: 33.8s [I 210409 _init__:784] uiautomator back to normal
效果:

然后即可看到 搜索结果对应的xml

即,可以xml是最新的了。
【总结】
背景:之前是当前百度首页,但是输入了内容,触发了搜索后,页面内容已变化
但是用代码:
d.dump_hierarchy(compressed=False, pretty=False)
输出的安卓的页面的xml源码却不是最新的
原因:是之前遇到的,uiautomator2的bug
解决办法:重启uiautomator2的服务
代码:
d.service("uiautomator").stop() d.service("uiautomator").start() time.sleep(1)
即可。
然后获取到xml源码,就是最新的了,包含了百度搜索的结果了。