最新消息:20210917 已从crifan.com换到crifan.org

【已解决】uiautomator2中dump_hierarchy获取到的xml源码不是最新的

uiautomator2 crifan 868浏览 0评论
折腾:
【未解决】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源码,就是最新的了,包含了百度搜索的结果了。

转载请注明:在路上 » 【已解决】uiautomator2中dump_hierarchy获取到的xml源码不是最新的

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.181 seconds, using 23.36MB memory