soul autoFillForm(formUrl, userData) {
browser = Robo.createBrowser({headless: false})
page = browser.newPage()
try {
// Navigate to form
Robo.navigate(page, formUrl)
// Fill form fields
Robo.input(Robo.findElement(page, "#first-name"), userData.firstName)
Robo.input(Robo.findElement(page, "#last-name"), userData.lastName)
Robo.input(Robo.findElement(page, "#email"), userData.email)
// Select from dropdown
Robo.select(Robo.findElement(page, "#country"), userData.country)
// Check checkbox
if (userData.newsletter) {
Robo.click(Robo.findElement(page, "#newsletter-checkbox"))
}
// Upload file if provided
if (userData.resume) {
Robo.upload(Robo.findElement(page, "#resume-upload"), userData.resume)
}
// Submit form
Robo.click(Robo.findElement(page, "#submit-button"))
// Wait for success message
Robo.waitForElement(page, ".success-message")
return {
success: true,
message: Robo.getText(Robo.findElement(page, ".success-message"))
}
} catch (error) {
return {
success: false,
error: error.message
}
} finally {
Robo.closeBrowser(browser)
}
}
// Usage
result = autoFillForm("https://example.com/contact", {
firstName: "John",
lastName: "Doe",
email: "john@example.com",
country: "US",
newsletter: true,
resume: "/path/to/resume.pdf"
})