Solutions for The Automation Challenge implemented using Playwright in multiple languages.
- Java
- Python
.
├── java/
└── python/
The Automation Challenge requires automating a dynamically changing web form.
After every submission:
- Field locations change
- Layouts are randomized
- DOM structure changes
- Labels shift position
- CAPTCHA popups may appear
Traditional automation approaches that rely on static selectors quickly become unreliable.
To handle the dynamic nature of the challenge, the solutions:
- Download the challenge spreadsheet
- Process spreadsheet data
- Discover form labels dynamically at runtime
- Resolve associated input fields using DOM relationships
- Populate fields programmatically
- Remove CAPTCHA overlays when encountered
- Re-discover and process the updated form after every submission
This approach avoids reliance on static selectors and allows the automation to adapt to changing layouts and element positions.
- Ranked on the Top 100 Leaderboard
- Certificate of Completion
- Achieved 100% challenge completion (350/350 fields)
- Achieved 100% challenge completion (350/350 fields)
The challenge intentionally introduces highly dynamic DOM updates and asynchronous rendering between submissions.
While both implementations are capable of achieving full completion, occasional synchronization-related failures may occur due to transient DOM states during form regeneration. Additional synchronization hardening would be required to guarantee deterministic execution across repeated runs.
Refer to the implementation-specific README files:
java/README.mdpython/README.md