def __init__(self): self._cache = ApplicationCache()
class _ApplicationManagementKeywords(KeywordGroup): def __init__(self): self._cache = ApplicationCache() # Public, open and close def close_application(self): """Closes the current application.""" if self._cache.current: self._debug('Closing application with session id %s' % self._cache.current.session_id) self._cache.close() def open_application(self, remote_url, device, app, app_package, app_activity, alias=None): """Opens a new application to given Appium server. | Option | Man. | Description | | remote_url | Yes | Appium server url | | device | Yes | Device id | | app | Yes | Android application | | app_package | Yes | Android application package name | | app_activity | Yes | Android application activity name | Examples: | Open Application | http://localhost:4723/wd/hub | emulator:5554 | OrangeDemoApp.apk | com.test.orangedemo | .MainActivity | """ desired_caps = {} desired_caps['device'] = device desired_caps['version'] = '4.2' desired_caps['app'] = app desired_caps['app-package'] = app_package desired_caps['app-activity'] = app_activity desired_caps['takesScreenshot'] = 'true' application = webdriver.Remote(str(remote_url), desired_caps) self._debug('Opened application with session id %s' % application.session_id) return self._cache.register(application, alias) def _go_back(self): """Simulates the user clicking the "back" button on their browser.""" self._current_application().back() def _current_application(self): if not self._cache.current: raise RuntimeError('No application is open') return self._cache.current def _parse_capabilities_string(self, capabilities_string): '''parses the string based desired_capabilities which should be in the form key1:val1,key2:val2 ''' desired_capabilities = {} if not capabilities_string: return desired_capabilities for cap in capabilities_string.split(","): (key, value) = cap.split(":") desired_capabilities[key.strip()] = value.strip() return desired_capabilities