Registration Automation Developer Specification
Budget / Salary$30–250
TypeFreelance project
LocationRemote
Posted1 hour ago
Registration Form Automation — Developer Specification
1. Project Objective
Develop a browser-based automation tool for registration website.
The automation should perform only the registration and OTP-verification workflow:
Open the registration page.
Fill in the required registration information.
Submit the registration form.
Wait for the OTP verification page.
Enter the authorized OTP.
If necessary, request OTP resend up to 2–3 times.
Verify whether registration was successful.
Stop immediately after successful account creation.
No unrelated actions should be included.
2. Recommended Technology
Preferred technology stack:
Programming Language: Python
Browser Automation: Playwright
Browser: We need to test this to make sure everything works correctly
Configuration: .env + JSON/YAML configuration
Logging: Python logging
Architecture: Modular design
Playwright is preferred for this project because of its reliable browser automation and built-in waiting mechanisms.
3. Expected Automation Flow
START
↓
Open Registration URL
↓
Wait for Registration Form
↓
Fill Registration Information
↓
Validate Required Fields
↓
Submit Registration Form
↓
Wait for OTP Verification Page
↓
Detect OTP Input
↓
Wait for Authorized OTP
↓
Enter OTP
↓
Submit OTP
↓
Check Verification Result
↓
┌─────────────────────┐
│ Verification Success│
└──────────┬──────────┘
↓
Account Created
↓
STOP
If OTP is expired/unavailable:
↓
Check Resend Availability
↓
Wait for Resend Cooldown
↓
Resend OTP
↓
Wait for New OTP
↓
Retry Verification
↓
Maximum 2–3 Resends
↓
STOP if limit is reached
4. Registration Form Handling
The automation should identify form elements using stable selectors whenever possible.
Preferred selector priority:
data-testid
id
name
Accessible label
Stable CSS selector
Avoid relying primarily on screen coordinates or fixed mouse positions.
Potential fields may include:
First Name
Last Name
Email
Phone Number
Password
Confirm Password
Date of Birth
Other required registration fields
The actual field configuration should be easily changeable.
5. Registration Data
Registration data must not be hard-coded directly into the source code.
Use configuration or environment variables.
Example:
FIRST_NAME
LAST_NAME
EMAIL
PHONE
PASSWORD
DATE_OF_BIRTH
Sensitive values such as passwords must be stored securely and must not be exposed in source code or logs.
6. Form Validation
Before submitting the form, the automation should verify:
Required fields are populated.
Email format is valid where applicable.
Password fields are populated.
Password confirmation matches.
No visible validation errors are present.
If the website displays a validation error, the automation should detect it and handle the failure appropriately.
7. Form Submission
After submitting the registration form, the automation should:
Detect whether the submission was accepted.
Wait for navigation or page transition.
Handle loading states.
Detect registration errors.
Detect the OTP verification page.
Continue only when the expected next state is detected.
Use condition-based waits instead of relying heavily on arbitrary fixed sleep() calls.
8. OTP Verification
OTP handling must use an authorized OTP/test-verification channel.
1. Project Objective
Develop a browser-based automation tool for registration website.
The automation should perform only the registration and OTP-verification workflow:
Open the registration page.
Fill in the required registration information.
Submit the registration form.
Wait for the OTP verification page.
Enter the authorized OTP.
If necessary, request OTP resend up to 2–3 times.
Verify whether registration was successful.
Stop immediately after successful account creation.
No unrelated actions should be included.
2. Recommended Technology
Preferred technology stack:
Programming Language: Python
Browser Automation: Playwright
Browser: We need to test this to make sure everything works correctly
Configuration: .env + JSON/YAML configuration
Logging: Python logging
Architecture: Modular design
Playwright is preferred for this project because of its reliable browser automation and built-in waiting mechanisms.
3. Expected Automation Flow
START
↓
Open Registration URL
↓
Wait for Registration Form
↓
Fill Registration Information
↓
Validate Required Fields
↓
Submit Registration Form
↓
Wait for OTP Verification Page
↓
Detect OTP Input
↓
Wait for Authorized OTP
↓
Enter OTP
↓
Submit OTP
↓
Check Verification Result
↓
┌─────────────────────┐
│ Verification Success│
└──────────┬──────────┘
↓
Account Created
↓
STOP
If OTP is expired/unavailable:
↓
Check Resend Availability
↓
Wait for Resend Cooldown
↓
Resend OTP
↓
Wait for New OTP
↓
Retry Verification
↓
Maximum 2–3 Resends
↓
STOP if limit is reached
4. Registration Form Handling
The automation should identify form elements using stable selectors whenever possible.
Preferred selector priority:
data-testid
id
name
Accessible label
Stable CSS selector
Avoid relying primarily on screen coordinates or fixed mouse positions.
Potential fields may include:
First Name
Last Name
Phone Number
Password
Confirm Password
Date of Birth
Other required registration fields
The actual field configuration should be easily changeable.
5. Registration Data
Registration data must not be hard-coded directly into the source code.
Use configuration or environment variables.
Example:
FIRST_NAME
LAST_NAME
PHONE
PASSWORD
DATE_OF_BIRTH
Sensitive values such as passwords must be stored securely and must not be exposed in source code or logs.
6. Form Validation
Before submitting the form, the automation should verify:
Required fields are populated.
Email format is valid where applicable.
Password fields are populated.
Password confirmation matches.
No visible validation errors are present.
If the website displays a validation error, the automation should detect it and handle the failure appropriately.
7. Form Submission
After submitting the registration form, the automation should:
Detect whether the submission was accepted.
Wait for navigation or page transition.
Handle loading states.
Detect registration errors.
Detect the OTP verification page.
Continue only when the expected next state is detected.
Use condition-based waits instead of relying heavily on arbitrary fixed sleep() calls.
8. OTP Verification
OTP handling must use an authorized OTP/test-verification channel.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.