From 2a40fd2fa1acd50a02d59139c8179fabc5457b33 Mon Sep 17 00:00:00 2001 From: Saw-jan Date: Tue, 19 May 2026 13:28:10 +0545 Subject: [PATCH 1/2] test: fix double click at element position Signed-off-by: Saw-jan --- test/gui/helpers/AppHelper.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/gui/helpers/AppHelper.py b/test/gui/helpers/AppHelper.py index d6474890c..821ad4062 100644 --- a/test/gui/helpers/AppHelper.py +++ b/test/gui/helpers/AppHelper.py @@ -23,6 +23,11 @@ def native_click(self, **kwargs): def native_double_click(self, **kwargs): x, y = get_element_center_xy(self) + win_x, win_y = get_window_location() + if x < win_x: + x = x + win_x + if y < win_y: + y = y + win_y pyautogui.doubleClick(x, y, **kwargs) From 6d6c59fa73fe94483fdb953c8e828f91bdaacb5e Mon Sep 17 00:00:00 2001 From: Saw-jan Date: Tue, 19 May 2026 13:30:14 +0545 Subject: [PATCH 2/2] test: select folders based on the parent position Signed-off-by: Saw-jan --- test/gui/pageObjects/SyncConnectionWizard.py | 26 ++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/test/gui/pageObjects/SyncConnectionWizard.py b/test/gui/pageObjects/SyncConnectionWizard.py index 80c53dd98..e58917a7b 100644 --- a/test/gui/pageObjects/SyncConnectionWizard.py +++ b/test/gui/pageObjects/SyncConnectionWizard.py @@ -208,14 +208,18 @@ def select_or_unselect_folders_to_sync(folders, select=True): target_folder = parents.pop() parent_element = None + parent_position = 0 for parent in parents: - if parent_element: - p_elements = parent_element.find_elements(By.NAME, parent) - else: - p_elements = app().find_elements(By.NAME, parent) + p_elements = app().find_elements(By.NAME, parent) + # select nested folders based on the position of the parent folder for p_element in p_elements: - if p_element.get_attribute("checked") == 'true': + if ( + p_element.get_attribute("checked") == 'true' + and p_element.rect["x"] > parent_position + ): parent_element = p_element + parent_position = p_element.rect["x"] + break parent_element.native_double_click() # expand the folder # retry once if the folder is not expanded if parent_element.is_selected(): @@ -226,14 +230,22 @@ def select_or_unselect_folders_to_sync(folders, select=True): if parent_element.is_selected(): raise AssertionError(f'Failed to expand folder: {parent}') - folder_element = app().find_element(By.NAME, target_folder) + folder_element = None + target_folders = app().find_elements(By.NAME, target_folder) + # select the folder that is inside the current parent position + for folder in target_folders: + if folder.rect["x"] > parent_position: + folder_element = folder + break is_checked = folder_element.get_attribute("checked") # return early if the folder is already in the expected state. if is_checked == expected_state: return folder_element.native_click() - folder_element.native_send_keys(Keys.SPACE) # select the folder + if not folder_element.is_selected(): + raise AssertionError(f"Failed to focus folder: {target_folder}") + folder_element.native_send_keys(Keys.SPACE) # toggle the folder selection is_checked = folder_element.get_attribute("checked") if is_checked != expected_state: