Skip to content

Appian Textbox

Use AppianPage.textbox(...) for ordinary text entry and searchable text-entry controls. Identify a textbox by its label, placeholder, or nearby header text.

textbox = page.textbox(label="Title")
textbox.fill("Example request")

A placeholder can be used when that is the natural identifier for the field:

page.textbox(placeholder="example@example.com").fill("user@example.com")
page.textbox(header="Item Description").fill("General details")

fill(value) replaces the current text and returns the same AppianTextbox, so calls can be chained. For a searchable textbox, use fill(...).select(...) to enter search text and choose a suggestion.

page.textbox("Employee").fill("John").select("John Smith")
page.textbox("Employee").fill("John").select(index=2)

The same operation can be expressed in one call. Suggestion index values are 1-based.

page.textbox("Employee").select(search_text="John", value="John Smith")
page.textbox("Employee").select(search_text="John", index=2)
page.textbox(placeholder="Start typing...").select(
    search_text="Example", value="Example Result"
)

select(value=None, *, search_text=None, index=None, exact=True, timeout=None) requires exactly one of value or index:

  • value selects a visible suggestion by displayed text. Matching is exact by default; use exact=False for intentional partial matching.
  • index selects by 1-based suggestion position. index=1 is the first visible suggestion and index=2 is the second.
  • search_text optionally enters the search criteria before selecting. Omit it when fill() has already entered the search text.
  • timeout is expressed in seconds. None uses the component/framework timeout.

value and index are mutually exclusive. Calling select() with neither, with both, with an index below 1, or with blank search/value text raises a clear argument error. A searchable textbox with no results raises LookupError; an out-of-range suggestion index raises IndexError. After the suggestion is selected, select() waits for the action to complete and returns the same textbox.

Textbox component collection indexing remains zero-based:

page.textboxes[0].fill("John").select(index=2)

Here [0] means the first textbox on the page, while select(index=2) means the second suggestion.

Common operations include fill(), select(), clear(), click(), is_visible(), is_enabled(), is_disabled(), value(), and wait_until_ready().

AppianTextbox

Bases: AppianInputComponent

Represent an Appian text field bound to a page.

fill

fill(value: object) -> 'AppianTextbox'

Replace the textbox value and return this component for chaining.

Searchable Appian textboxes are entered with keyboard events and retain focus so a following select(...) can choose from their suggestions. Ordinary textboxes preserve the normal blur-and-wait Appian lifecycle.

select

select(
    value: str | None = None,
    *,
    search_text: str | None = None,
    index: int | None = None,
    exact: bool = True,
    timeout: float | int | None = None
) -> "AppianTextbox"

Select a suggestion from a searchable Appian textbox.

value selects a suggestion by displayed text. index selects a suggestion by 1-based position. They are mutually exclusive. When search_text is supplied, it is entered before the selection; omit it after chaining from fill(...).

clear

clear() -> None

Wait until the textbox is ready, then clear its value.

click

click() -> None

Wait until the textbox is ready, then click it.

is_visible

is_visible() -> bool

Return whether the textbox is currently visible.

is_disabled

is_disabled() -> bool

Return whether the textbox is currently disabled.

is_enabled

is_enabled(timeout: float | int | None = None) -> bool

Return whether the textbox is enabled, optionally waiting.

Omitting timeout performs an immediate state query. Supplying a positive timeout in seconds waits up to that duration and returns False if the textbox never becomes enabled.

value

value() -> str

Return the textbox's current value.

wait_until_ready

wait_until_ready() -> 'AppianTextbox'

Wait until the textbox is visible and enabled, then return it.

Date fields

Use page.date(...) for Appian date fields rather than page.textbox(...).

page.date(label="Start Date").fill("10/07/2026")

Exact matching and visibility

By default, robo-appian uses a visible component whose displayed name or label exactly matches what you provide. Keep exact=True and visible=True for normal business automation. Use exact=False only when you intentionally want a partial name or label match. Change visible only when your scenario specifically requires a component that is not currently visible.

Timeout

timeout is expressed in seconds. Leave timeout=None to use the normal configured wait time, or provide a positive value when this particular action needs a different wait time.