---
title: Upload file
description: "Upload a file through a file input on the page. You give the step the URL of the file, and the platform downloads it before attaching it."
lastUpdated: "2026-09-23"
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

Upload a file through an `<input type="file">` element. You point the step at the file input and give it the URL of the file to upload; the platform downloads the file and hands it to the input, as if a user had picked it from disk.

## Parameters

| Parameter | Required | Description |
| ----------- | ---------- | ------------- |
| Target element | Yes, unless a manual selector is set | The file input (or its visible upload control). The AI uses the description to find it. |
| File url path | Yes | URL of the file to upload. The file must be reachable from the agent running the test. Supports variables. |
| Manual selector | No | XPath or CSS selector, used when AI is disabled or as the saved selector. |
| AI usage | No | `inherit` (default, follows the test strategy), `smart`, or `always`. |
| Ignore error on this step | No | The run continues with the next step if this one fails. Default: off. |

## Results and metrics

- **Timing**: start, end, and duration (in seconds), including the time to fetch and submit the file.
- **Status**: success, warning, or failed, with the error message on failure.
- **Screenshot**: captured after the upload.
- **AI usage**: if the AI located the element, the healed selector is saved on the test and the AI cost is added to the run.

## What's next?

<Columns cols={2}>
  <Card title="Verify element" icon="eye" href="/tests/actions/web/verifyelement">

    Confirm the upload preview or success message appeared

</Card>
  <Card title="Variables" icon="brackets-curly" href="/tests/variables">

    Build the file URL from variables instead of hardcoding it

</Card>
</Columns>
