Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

The Automation Challenge

Solutions for The Automation Challenge implemented using Playwright in multiple languages.

Implementations

  • Java
  • Python

Project Structure

.
├── java/
└── python/

Challenge Overview

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.

Approach

To handle the dynamic nature of the challenge, the solutions:

  1. Download the challenge spreadsheet
  2. Process spreadsheet data
  3. Discover form labels dynamically at runtime
  4. Resolve associated input fields using DOM relationships
  5. Populate fields programmatically
  6. Remove CAPTCHA overlays when encountered
  7. 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.

Results

Java

  • Achieved 100% challenge completion (350/350 fields)

Python

  • Achieved 100% challenge completion (350/350 fields)

Known Limitations

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.

Setup

Refer to the implementation-specific README files:

  • java/README.md
  • python/README.md

About

Solutions for The Automation Challenge

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages