diff options
author | Nagappan <nagapan@gmail.com> | 2010-04-14 03:00:17 -0700 |
---|---|---|
committer | Nagappan <nagapan@gmail.com> | 2010-04-14 03:00:17 -0700 |
commit | a385e538840f98902f458fbad54cd4e525659caf (patch) | |
tree | 5cbb2af5ae7de0211d398c556aca01d765d768d7 | |
parent | c55780172e08be2e5a9c4c23b17563e2fe67238c (diff) |
If role is provided in Component.getchild, then get role matching from child under current objectappmap
-rw-r--r-- | ldtpd/core.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ldtpd/core.py b/ldtpd/core.py index 3e8c74a..7e00752 100644 --- a/ldtpd/core.py +++ b/ldtpd/core.py @@ -811,7 +811,9 @@ class Ldtpd(Utils, ComboBox, Table, Menu, PageTabList, @rtype: list ''' matches = [] - if parent and child_name and not role: + if role: + role = re.sub(' ', '_', role) + if parent and (child_name or role): _window_handle = self._get_window_handle(window_name) if not _window_handle: raise LdtpServerException('Unable to find window "%s"' % \ @@ -820,7 +822,9 @@ class Ldtpd(Utils, ComboBox, Table, Menu, PageTabList, obj = self._get_object_in_window(appmap, parent) obj_name = appmap[obj['key']] def _get_all_children_under_obj(obj, child_list): - if self._match_name_to_appmap(child_name, obj): + if role and obj['class'] == role: + child_list.append(obj['key']) + elif child_name and self._match_name_to_appmap(child_name, obj): child_list.append(obj['key']) if obj: children = obj['children'] @@ -839,8 +843,6 @@ class Ldtpd(Utils, ComboBox, Table, Menu, PageTabList, raise LdtpServerException('Unable to find window "%s"' % \ window_name) appmap = self._appmap_pairs(_window_handle) - if role: - role = re.sub(' ', '_', role) for name in appmap.keys(): obj = appmap[name] # When only role arg is passed |