From 9678c7372e8440aa2db83b8194f7c67b681f63ce Mon Sep 17 00:00:00 2001 From: Sergei Trofimov Date: Wed, 21 Mar 2018 14:57:05 +0000 Subject: [PATCH] AndroidTarget: add capture_ui_hierarchy Add a method to dump XML UI hierarchy from uiautomator. --- devlib/target.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devlib/target.py b/devlib/target.py index 7d887de..4e018c7 100644 --- a/devlib/target.py +++ b/devlib/target.py @@ -7,6 +7,7 @@ import subprocess import tarfile import tempfile import threading +import xml.dom.minidom from collections import namedtuple from devlib.host import LocalConnection, PACKAGE_BIN_DIRECTORY @@ -1175,6 +1176,16 @@ class AndroidTarget(Target): return props[prop] return props + def capture_ui_hierarchy(self, filepath): + on_target_file = self.get_workpath('screen_capture.xml') + self.execute('uiautomator dump {}'.format(on_target_file)) + self.pull(on_target_file, filepath) + self.remove(on_target_file) + + parsed_xml = xml.dom.minidom.parse(filepath) + with open(filepath, 'w') as f: + f.write(parsed_xml.toprettyxml()) + def is_installed(self, name): return super(AndroidTarget, self).is_installed(name) or self.package_is_installed(name)