From b88519519fc59298ba6905453cb34d19b26ab794 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 21 Jun 2025 12:40:30 +0100 Subject: [PATCH] bitbake: toaster/tests: Fix automated testing failures The display window scrolling mechanism we were using was failing in one case and needed in another. After trying various approaches, this one with window.scrollTo seems to work and fixes the test failures. (Bitbake rev: f1175778108a559e1dd0d55cb68f42816c86f393) Signed-off-by: Richard Purdie --- .../lib/toaster/tests/browser/test_layerdetails_page.py | 2 ++ bitbake/lib/toaster/tests/functional/test_project_page.py | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py index 69493833f4..6abfdef699 100644 --- a/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py +++ b/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py @@ -108,6 +108,8 @@ class TestLayerDetailsPage(SeleniumTestCase): save_btn.click() self.wait_until_visible("#save-changes-for-switch") + # Ensure scrolled into view + self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})') btn_save_chg_for_switch = self.wait_until_clickable( "#save-changes-for-switch") btn_save_chg_for_switch.click() diff --git a/bitbake/lib/toaster/tests/functional/test_project_page.py b/bitbake/lib/toaster/tests/functional/test_project_page.py index c6dad0eb5d..429d86feba 100644 --- a/bitbake/lib/toaster/tests/functional/test_project_page.py +++ b/bitbake/lib/toaster/tests/functional/test_project_page.py @@ -685,17 +685,17 @@ class TestProjectPage(TestProjectPageBase): 'active', str(self.find('#information').get_attribute('class')) ) # Check second tab (recipes) - # Ensure page is scrolled to the top - self.driver.find_element(By.XPATH, '//body').send_keys(Keys.CONTROL + Keys.HOME) self.wait_until_visible('.nav-tabs') + # Ensure page is scrolled to the top + self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})') tabs[1].click() self.assertIn( 'active', str(self.find('#recipes').get_attribute('class')) ) # Check third tab (machines) - # Ensure page is scrolled to the top - self.driver.find_element(By.XPATH, '//body').send_keys(Keys.CONTROL + Keys.HOME) self.wait_until_visible('.nav-tabs') + # Ensure page is scrolled to the top + self.driver.execute_script('window.scrollTo({behavior: "instant", top: 0, left: 0})') tabs[2].click() self.assertIn( 'active', str(self.find('#machines').get_attribute('class'))