From fca8eb47b6fa82de8bfcfc71f8dfd206d58c0038 Mon Sep 17 00:00:00 2001 From: LakshyaBagani Date: Wed, 21 Jan 2026 02:10:28 +0530 Subject: [PATCH] Wait for 'Build Now' link visibility before clicking The Jenkins core race condition fix hides the 'Build Now' button (display: none) until JavaScript loads. This caused ATH tests to time out because clickLink('Build Now') couldn't find the hidden element. This fix adds waitFor(by.link('Build Now')) before clicking, which polls until the element is visible (with ATH's default 120s timeout). Fixes timeouts in: - core.FreestyleJobTest.doNotDiscardSuccessfulBuilds - core.FreestyleJobTest.archiveArtifacts - core.TriggerRemoteBuildsTest.triggerBuildRemotely --- src/main/java/org/jenkinsci/test/acceptance/po/Job.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/org/jenkinsci/test/acceptance/po/Job.java b/src/main/java/org/jenkinsci/test/acceptance/po/Job.java index a1ead95117..16c0a60ab1 100644 --- a/src/main/java/org/jenkinsci/test/acceptance/po/Job.java +++ b/src/main/java/org/jenkinsci/test/acceptance/po/Job.java @@ -362,6 +362,8 @@ public Build scheduleBuild(Map params) { open(); int nb = getJson().get("nextBuildNumber").intValue(); if (parameters.isEmpty()) { + // Wait for "Build Now" link to become visible (JS shows it after page load) + waitFor(by.link("Build Now")); clickLink("Build Now"); // the notification bar can place itslef over other elements // so wait for it to be added and then disappear