Skip to content

Add UI Testing Playground coverage - #4

Merged
michaustriaqa merged 2 commits into
masterfrom
claude/ui-testing-playground
Aug 18, 2026
Merged

michaustriaqa merged 2 commits into
masterfrom
claude/ui-testing-playground

Conversation

@michaustriaqa

@michaustriaqa michaustriaqa commented Aug 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Adds a new, independent suite covering every challenge page listed on uitestingplayground.com's homepage (Inflectra's UI Test Automation Playground): 29 pages spanning dynamic attributes, timing, visibility, Shadow DOM, alerts, frames, and more.
  • Locators and assertions were derived by driving the live site from CI and inspecting its real DOM and behavior, after an earlier attempt (based on a generic memory of "a UI testing playground site") turned out to not match this specific site's actual structure.
  • Wired into CI as its own job, separate from the existing UI and API jobs, so a flaky third-party page here can't affect the already-stable suites' status.

Test plan

  • robot --dryrun passes locally for the full suite
  • robocop check / robocop format --check clean
  • All 29 playground tests green in CI against the live site
  • Diagnostic file removed, CI job pointed back at tests/playground

Round 6 diagnostics showed the real mechanics: Hidden Layers stacks a
second "blueButton" layer on top of the still-present greenButton
rather than replacing it, so the fix checks for the new layer instead
of an id swap. Mouse Over's link keeps the same DOM node but swaps its
class from text-primary to text-warning on hover, which broke the
previous class-based locator; now located by its stable text instead.
Sample App logs in correctly with "pwd" when tested directly, so the
retry flow now re-enters the username as well as the password in case
a failed attempt clears the form.

Diagnoses Overlapped Element's remaining failure (JS value-setting
returns empty immediately after a synchronous set+dispatch) at the
correct 1920x1080 window size the real suite uses, comparing native
input, JS set with/without dispatch, and the React native-setter
trick, since two earlier guessed fixes for this one have both failed.
Round 7 diagnostics showed the field has no input/change listeners at
all: a plain JavaScript property assignment (confirmed via Selenium's
own attribute read immediately after) sets it reliably, while the
"native setter" trick that's usually needed for React inputs actually
broke it here, and native clicks/keystrokes fail because a permanently
positioned element covers the field regardless of window size, not
because of a narrow-viewport responsive issue.

Also fixes the "#name" selector variable being silently swallowed as
a Robot Framework comment (any cell starting with # is treated as one,
regardless of section) by qualifying it with the input tag.

Reverts the CI workflow's playground job back to the real suite and
removes the temporary diagnostic file now that all 29 tests are green.
@michaustriaqa
michaustriaqa merged commit 5c8ccb5 into master Aug 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant