From 97f88eab644628244205ac3bf493f4fafb7f8e9e Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Mon, 5 Oct 2026 14:27:46 -0400 Subject: [PATCH 1/2] Bug 2078352 - Selenium test 4_test_votes.t fails with Firefox ESR 153 because go_to_bug doesn't wait for the module expand animation --- qa/t/lib/QA/Util.pm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/qa/t/lib/QA/Util.pm b/qa/t/lib/QA/Util.pm index 23a3f158df..6163d961e7 100644 --- a/qa/t/lib/QA/Util.pm +++ b/qa/t/lib/QA/Util.pm @@ -299,6 +299,16 @@ sub go_to_bug { $sel->click_ok('action-menu-btn', 'Expand action menu'); $sel->click_ok('action-expand-all', 'Expand all modal panels'); + # Expanding uses a jQuery slide animation that sets overflow:hidden on the + # module content until it finishes. WebDriver treats the clipped fields as + # not displayed (get_text returns ''), so wait for the animation to end. + for (1 .. 50) { + last + unless $sel->driver->execute_script( + 'return window.jQuery ? jQuery(":animated").length : 0'); + select(undef, undef, undef, 0.1); + } + # Remove the blue New Changes link because the sticky banner causes a click interception issue in # Selenium that cannot be reproduced in real browser environments $sel->driver->execute_script('document.querySelector(\'.new-changes-link\')?.remove();'); From 48e541df9858d40e7e4820e5769d5f349334ce88 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Tue, 6 Oct 2026 15:16:40 -0400 Subject: [PATCH 2/2] Review fixes --- qa/t/lib/QA/Util.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/qa/t/lib/QA/Util.pm b/qa/t/lib/QA/Util.pm index 6163d961e7..1e871144a5 100644 --- a/qa/t/lib/QA/Util.pm +++ b/qa/t/lib/QA/Util.pm @@ -302,12 +302,17 @@ sub go_to_bug { # Expanding uses a jQuery slide animation that sets overflow:hidden on the # module content until it finishes. WebDriver treats the clipped fields as # not displayed (get_text returns ''), so wait for the animation to end. + my $animating; for (1 .. 50) { - last - unless $sel->driver->execute_script( + $animating = $sel->driver->execute_script( 'return window.jQuery ? jQuery(":animated").length : 0'); + last unless $animating; select(undef, undef, undef, 0.1); } + if ($animating) { + ok(0, 'Module expand animation finished within 5s'); + diag("$animating element(s) still animating; later get_text calls may return ''"); + } # Remove the blue New Changes link because the sticky banner causes a click interception issue in # Selenium that cannot be reproduced in real browser environments