From 105a8d90bc2a29c48b6136970652dcedd1f0848e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wierci=C5=84ski?= Date: Fri, 3 Nov 2023 09:54:30 +0100 Subject: [PATCH] wasm tests: Fix manual Selenium tests Manual tests using Selenium for browser automation were not properly updated when we introduced changes to our DOM structure. Update the testing framework so elements in shadow root may be properly accessed. Change-Id: I45f7d63a833bc48a3b68016ef937e56425bdff87 Reviewed-by: Lorn Potter --- .../manual/wasm/selenium/qwasmwindow/qwasmwindow.py | 13 +++++++++---- .../selenium/qwasmwindow/qwasmwindow_harness.html | 4 +++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow.py b/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow.py index 5eca4971ea7..5fddcf5f1c4 100644 --- a/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow.py +++ b/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow.py @@ -545,10 +545,15 @@ class Screen: .startswith('qt-window-'), self.hit_test_point(x, y))]] def query_windows(self): + shadow_container = self.element.find_element(By.CSS_SELECTOR, f'#qt-shadow-container') return [ - Window(self, element=element) for element in self.element.shadow_root.find_elements( + Window(self, element=element) for element in shadow_container.shadow_root.find_elements( By.CSS_SELECTOR, f'div#{self.name} > div.qt-window')] + def find_element(self, method, query): + shadow_container = self.element.find_element(By.CSS_SELECTOR, f'#qt-shadow-container') + return shadow_container.shadow_root.find_element(method, query) + class Window: def __init__(self, parent=None, rect=None, title=None, element=None, visible=True): @@ -556,7 +561,7 @@ class Window: if element is not None: self.element = element self.title = element.find_element( - By.CSS_SELECTOR, f'.title-bar > .window-name').text + By.CSS_SELECTOR, f'.title-bar > .window-name').get_property("textContent") information = self.__window_information() self.screen = Screen(self.driver, screen_name=information['screen']['name']) pass @@ -578,8 +583,8 @@ class Window: ) self.screen = parent self._window_id = self.__window_information()['id'] - self.element = self.screen.element.shadow_root.find_element( - By.CSS_SELECTOR, f'#qt-window-{self._window_id}') + self.element = self.screen.find_element( + By.CSS_SELECTOR, f'#qt-window-{self._window_id}') if visible: self.set_visible(True) diff --git a/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow_harness.html b/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow_harness.html index 2b126c1f8ba..3e63e52e04b 100644 --- a/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow_harness.html +++ b/tests/manual/wasm/selenium/qwasmwindow/qwasmwindow_harness.html @@ -67,7 +67,9 @@ events: () => eventList, hitTestPoint: (x, y, screenId) => { return document - .querySelector(`#${screenId}`).shadowRoot.elementsFromPoint(x, y); + .querySelector(`#${screenId}`) + .querySelector('#qt-shadow-container') + .shadowRoot.elementsFromPoint(x, y); } }; })();