From 0b92ddf97e661679f0bb2a8c7d9cbad4b0bae0d4 Mon Sep 17 00:00:00 2001 From: "Aaron K. Clark" Date: Tue, 13 Oct 2026 05:21:40 -0500 Subject: [PATCH 1/2] fix(agent): turn Workday's Create Account over to Sign In before signing in (#450) A tenant that opens step 1 on Create Account (finastra.wd3) draws the same email and password boxes as its Sign In, plus Verify New Password and a "Sign In" link that turns the form over. The saved account was typed into Create Account and the link pressed as the sign-in button, so the form flipped empty and the sign-in was judged refused, right after the account creator had proved that password at the login page. The way in now waits up to 30 s for whatever step 1 shows (it is drawn ~7 s after the flow page on that tenant), presses the Sign In link when Create Account is what it shows, and waits for the sign-in form; the same guard runs where the walk's own sign-ins start, before the visible boxes are chosen. A fixture variant opens on Create Account, drawn late, and the test signs in through its link and reaches Review. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_015Xrsyx9xJYfnT2BzLMNFsB --- .../BrowserSubmitterTests.cs | 55 ++++++++++++++++++- .../Agent/Browser/BrowserSession.cs | 31 ++++++++++- 2 files changed, 84 insertions(+), 2 deletions(-) diff --git a/api/ApplyTrack.Api.Tests/BrowserSubmitterTests.cs b/api/ApplyTrack.Api.Tests/BrowserSubmitterTests.cs index 2cb3328..906efe5 100644 --- a/api/ApplyTrack.Api.Tests/BrowserSubmitterTests.cs +++ b/api/ApplyTrack.Api.Tests/BrowserSubmitterTests.cs @@ -578,6 +578,9 @@ function suggest(box) { // box, a drop-down button, a required radio group), Application Questions (a drop-down), // Voluntary Disclosures (a demographic drop-down, the terms box) and Review with Submit. _fixture.MapGet("/wd/en-US/Careers/job/Omaha/Engineer_R1/apply/applyManually", () => Results.Content(WorkdayWizardHtml, "text/html")); + // The same wizard as finastra.wd3 serves it (#450): step 1 opens on Create Account, drawn a + // while after the page, with a "Sign In" link that turns the form over to the sign-in. + _fixture.MapGet("/wd/en-US/Careers/job/Omaha/Engineer_R2/apply/applyManually", () => Results.Content(WorkdayWizardCreateFirstHtml, "text/html")); _fixture.MapPost("/wd/step", async (HttpRequest req) => { using var reader = new StreamReader(req.Body); @@ -1510,6 +1513,35 @@ Click the object that does not fit the column pattern """; + private const string WorkdayWizardChoicesHtml = """ +
+

Sign In

+ + +
+ """; + + private const string WorkdayWizardCreateFirstHtml_Entry = """ + + + """; + + private static readonly string WorkdayWizardCreateFirstHtml = WorkdayWizardHtml.Replace(WorkdayWizardChoicesHtml, WorkdayWizardCreateFirstHtml_Entry); + private const string WorkdayWizardHtml = """
@@ -1579,7 +1611,7 @@ Click the object that does not fit the column pattern