From 018b65124367f51554270b63733a8f0475fe2a3f Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 11 Nov 2025 06:27:10 -0500 Subject: [PATCH] [IMP] selenium web login enable dark mode into Odoo --- script/selenium/selenium_lib.py | 21 +++++++++++++++++++++ script/selenium/web_login.py | 7 +++++++ 2 files changed, 28 insertions(+) diff --git a/script/selenium/selenium_lib.py b/script/selenium/selenium_lib.py index eda9f42..04b6bad 100644 --- a/script/selenium/selenium_lib.py +++ b/script/selenium/selenium_lib.py @@ -1231,6 +1231,27 @@ class SeleniumLib(object): print(f"Bouton du statusbar avec le label '{status_label}' cliqué.") return status_button + def odoo_profile_click_dark_mode(self, enable_dark_mode=False): + profile_button = self.click_with_mouse_move( + By.XPATH, + "//div[contains(@class, 'o_user_menu')]/button[contains(@class, 'py-1')]", + ) + select_dark_element = self.get_element( + By.XPATH, + "//div[contains(@class, 'o_popover')]//span[@data-menu=\"color_scheme.switch\"]//input", + ) + if select_dark_element.is_selected() != enable_dark_mode: + dark_mode_button = self.click_with_mouse_move( + By.XPATH, + "//div[contains(@class, 'o_popover')]//span[@data-menu=\"color_scheme.switch\"]//input", + ) + else: + # close it + self.click_with_mouse_move( + By.XPATH, + "//div[contains(@class, 'o_user_menu')]/button[contains(@class, 'py-1')]", + ) + def odoo_web_form_click_statusbar_button_status_floating( self, status_label, timeout=10 ): diff --git a/script/selenium/web_login.py b/script/selenium/web_login.py index c8e361f..ee44f9d 100755 --- a/script/selenium/web_login.py +++ b/script/selenium/web_login.py @@ -163,6 +163,13 @@ def run( # Fermez le navigateur # selenium_tool.driver.quit() + # Force use dark mode if enable + selenium_tool.odoo_profile_click_dark_mode( + enable_dark_mode=not config.no_dark_mode + ) + + print("End web_login.py") + def compute_args(args): pass