Form Filling Skill
Description
Automatically fill web forms with provided data. This skill handles various form field types and can optionally submit the form after filling.
Dependencies
- •
web-scraping- Required for detecting form fields and structure
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | String | Yes | - | The URL of the page containing the form |
| formData | Map<String, String> | Yes | - | Key-value pairs representing field names and values |
| submit | Boolean | No | false | Whether to submit the form after filling |
Return Value
Returns a SkillResult with the following data structure:
json
{
"url": "string",
"filledFields": ["field1", "field2"],
"submitted": boolean,
"message": "status message"
}
Usage Examples
Basic Form Filling
kotlin
val result = registry.execute(
skillId = "form-filling",
context = context,
params = mapOf(
"url" to "https://example.com/contact",
"formData" to mapOf(
"name" to "John Doe",
"email" to "john@example.com",
"message" to "Hello!"
)
)
)
Form Filling with Submission
kotlin
val result = registry.execute(
skillId = "form-filling",
context = context,
params = mapOf(
"url" to "https://example.com/signup",
"formData" to mapOf(
"username" to "johndoe",
"password" to "securepass123",
"email" to "john@example.com"
),
"submit" to true
)
)
Tool Call Specification
kotlin
ToolSpec(
domain = "skill.form",
method = "fill",
arguments = [
"url: String",
"formData: Map<String, String>",
"submit: Boolean = false"
],
returnType = "SkillResult",
description = "Fill a web form with the provided data"
)
Error Handling
The skill returns a failure result in the following cases:
- •Missing required parameter
url - •Missing required parameter
formData - •Empty
formDatamap - •Form fields not found on the page
Lifecycle Hooks
onBeforeExecute
Validates that formData is not empty before execution.
validate
Checks if the required dependency skill (web-scraping) is available in the registry.
Implementation Notes
- •Supports various input types: text, email, password, textarea, select, checkbox, radio
- •Automatically handles form field detection and mapping
- •Respects CSRF tokens and hidden fields
- •Can handle multi-page forms through shared context
- •Thread-safe execution
Security Considerations
- •Never log sensitive form data (passwords, credit cards, etc.)
- •Validate form URLs to prevent CSRF attacks
- •Use HTTPS URLs for sensitive forms
- •Clear sensitive data from memory after use