blob: 0cee256fff90ee5314ed74929c2549b91b2b403f [file] [log] [blame]
# Copyright 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from telemetry.internal import app
class AndroidApp(app.App):
"""A running android app instance that can be controlled in a limited way.
Be sure to clean up after yourself by calling Close() when you are done with
the app. Or better yet:
with possible_android_app.Create(options) as android_app:
... do all your operations on android_app here
"""
def __init__(self, app_backend, platform_backend):
super(AndroidApp, self).__init__(app_backend=app_backend,
platform_backend=platform_backend)
self._app_backend.Start()
@property
def ui(self):
"""Returns an AppUi object to interact with the app's UI.
See devil.android.app_ui for the documentation of the API provided.
"""
return self._app_backend.GetAppUi()
def Close(self):
self._app_backend.Close()
def GetProcesses(self):
"""Returns the current set of processes belonging to this app."""
return self._app_backend.GetProcesses()
def GetProcess(self, subprocess_name):
"""Returns the process with the specified subprocess name."""
return self._app_backend.GetProcess(subprocess_name)
def GetWebViews(self):
"""Returns the set of all WebViews belonging to all processes of the app."""
return self._app_backend.GetWebViews()