Skip to main content
Read the Notte skill and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
Sessions provide a comprehensive set of browser actions for interacting with web pages. All actions are executed through session.execute().

Goto

Navigate to a URL.
Parameters:
  • url (str): The URL to navigate to
  • wait_until (str, optional): Navigation event to wait for: load (default), domcontentloaded, commit or networkidle. commit and domcontentloaded skip the post-load settle wait, which makes them the cheap choice when the page is only needed as an origin for session.fetch()
Use for: Opening pages, navigating between pages

GotoNewTab

Open a URL in a new browser tab.
goto_new_tab.py
Parameters:
  • url (str): The URL to open in a new tab
Use for: Opening multiple pages simultaneously, preserving context

SwitchTab

Switch to a different browser tab.
switch_tab.py
Parameters:
  • tab_index (int): Zero-based index of the tab to switch to
Use for: Managing multiple tabs, comparing content across pages

GoBack

Navigate back to the previous page.
go_back.py
Use for: Browser back button functionality, returning to previous pages

GoForward

Navigate forward in browser history.
go_forward.py
Use for: Browser forward button functionality

Reload

Reload the current page.
Use for: Refreshing page content, retrying after errors

Interaction Actions

Click

Click on an element.
click.py
Parameters:
  • selector (str): Selector for the element (CSS, XPath, or Playwright selector such as button:has-text('Submit'))
  • id (str): Element ID from the latest observe() output (for example B1)
  • timeout (int, optional): Action timeout in milliseconds
Use for: Clicking buttons, links, checkboxes, any clickable element

Fill

Fill a text input or textarea.
fill.py
Parameters:
  • selector (str): Selector for the input
  • id (str): Element ID from the latest observe() output (for example I1)
  • value (str): The text to fill
  • clear_before_fill (bool, optional): Clear the field first (default: True)
  • press_enter (bool, optional): Press Enter after filling
Use for: Filling forms, search boxes, text inputs

Check

Check or uncheck a checkbox.
check.py
Parameters:
  • selector (str): Selector for the checkbox
  • id (str): Element ID from the latest observe() output
  • value (bool): True to check, False to uncheck
Use for: Toggling checkboxes, accepting terms, selecting options

SelectDropdownOption

Select an option from a dropdown.
select_dropdown_option.py
Parameters:
  • selector (str): Selector for the select element
  • id (str): Element ID from the latest observe() output
  • value (str): Visible text or value attribute of the option to select
Use for: Selecting from dropdowns, choosing options

PressKey

Press a keyboard key.
Parameters:
  • key (str): Key name (e.g., “Enter”, “Escape”, “Tab”, “ArrowDown”)
Use for: Keyboard navigation, submitting forms, triggering shortcuts Common keys: Enter, Escape, Tab, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Backspace, Delete

EvaluateJs

Evaluate JavaScript code on the current page and return the result. session.evaluate_js(code) returns the evaluated string directly (objects and arrays as JSON); a failing script raises with the actual JavaScript error.
Parameters:
  • code (str): The JavaScript code to evaluate on the page
Use for: Evaluating JavaScript code, extracting data from the page

Fetch

Issue an HTTP request from the page the session is on. session.fetch(url) runs the browser’s own fetch() inside the current page, so the request carries the page’s cookies, the session’s proxy and the browser’s network fingerprint. A relative URL resolves against the current page, which also keeps it same-origin; a cross-origin URL is subject to CORS as in any browser tab, so goto the target origin first. The result is a standard requests.Response: status_code, ok, headers, text, url, json() and raise_for_status() work as usual.
fetch.py
Parameters:
  • url (str): The URL to request, absolute or relative to the current page
  • method (str): HTTP method, GET by default
  • headers (dict): Extra request headers
  • params (dict): Query parameters appended to the URL
  • json (Any): Body serialised as JSON with an application/json content type
  • data (str | dict): Body sent verbatim, or form-encoded when a dict
  • timeout (float): Seconds before the request is aborted
Use for: Calling a site’s own JSON endpoints with the session’s cookies and IP, without leaving the browser

Scrolling Actions

Both scroll actions accept an optional selector for a scroll container, including iframe selectors. For example, pass selector="#results" to scroll a results panel. The action calls scrollBy on that container directly, emitting scroll events without sending a wheel event or moving the pointer. If amount is omitted, the action scrolls by 70% of the container’s height. Reaching the requested boundary succeeds without moving or scrolling the parent page. A missing target or a blocked scroll before the boundary still fails. Without a selector, the action sends a wheel event at the current pointer position and fails if neither the page nor a container moves.

ScrollUp

Scroll up on the page.
Use for: Scrolling to top of page, revealing content above

ScrollDown

Scroll down on the page.
Use for: Loading lazy content, revealing content below, pagination

File Actions

UploadFile

Upload a file to a file input.
upload_file.py
Parameters:
  • selector (str): Selector for the file input
  • id (str): Element ID from the latest observe() output
  • file_path (str): In cloud sessions, a stored filename or a public HTTP(S) file URL, including signed URLs.
URL files download on the API server without navigating away from the form. They do not use browser cookies, browser proxy settings, or custom authentication headers, and are not added to the persistent session file catalog. The cloud backend must support URL uploads; no SDK update is required. Standalone local sessions keep their existing storage/path behavior. Use for: Uploading documents, images, any file input

DownloadFile

Download a file from a link.
download_file.py
Parameters:
  • selector (str): Selector for the download link
  • id (str): Element ID from the latest observe() output
Use for: Downloading files, reports, documents

Wait Action

Wait

Pause execution for a specified duration.
Parameters:
  • time_ms (int): Time to wait in milliseconds
Use for: Waiting for page loads, animations, dynamic content
Tip: Use sparingly. Notte automatically waits for page loads and element visibility. Only use Wait for specific timing requirements.

Data Extraction

Scrape

Extract data from the current page.
scrape.py
Parameters:
  • instructions (str): Natural language extraction instructions
  • response_format (type[BaseModel]): Pydantic model for structured output
  • only_main_content (bool): Extract only main content, ignore headers/footers
Use for: Data extraction, web scraping, content analysis See Scraping for detailed documentation.

Communication Actions

SmsRead

Read SMS messages from a persona’s phone number. In scripts, call persona.sms() as shown below. The sms_read action takes the same parameters.
sms_read.py
Parameters:
  • limit (int, optional): Maximum number of messages to return
  • timedelta (optional): Only return messages received within this window
  • only_unread (bool, optional): Only return unread messages
Use for: Reading 2FA codes, SMS verification, phone-based authentication See Personas for details.

EmailRead

Read emails from a persona’s email address. In scripts, call persona.emails() as shown below. The email_read action takes the same parameters.
email_read.py
Parameters:
  • limit (int, optional): Maximum number of emails to return
  • timedelta (optional): Only return emails received within this window
  • only_unread (bool, optional): Only return unread emails
Use for: Reading verification emails, email-based authentication See Personas for details.

Action Patterns

Chaining Actions

Execute multiple actions in sequence:
action_chaining.py

Error Handling

Handle action failures:
error_handling.py

Conditional Actions

Execute actions based on conditions:

Selector Strategies

CSS Selectors

Most flexible and commonly used:
css_selectors.py

Direct Attributes

Use direct attribute parameters when available:
direct_attributes.py

Best Practices

Prefer stable selectors:
stable_selectors.py
Use specific selectors:
specific_selectors.py

Common Workflows

Form Submission

form_submission.py

Search and Extract

search_extract.py

Multi-Tab Workflow

multi_tab.py

File Upload and Download

file_upload_download.py

Next Steps

Session Configuration

Configure session behavior

Session Lifecycle

Manage session states

SDK Actions Reference

Detailed API documentation

File Storage

Upload and download files in sessions