Skip to main content

Overview

The Navigate node handles all browser navigation actions including navigating to URLs, moving backward/forward in history, reloading pages, and managing tabs. It supports advanced waiting conditions and retry logic for reliable navigation.

Actions

Navigate to a specific URL.
url
string
required
The URL to navigate to. URLs without protocol are automatically prefixed with https://.Supports variable interpolation: ${data.dynamicUrl}
waitUntil
string
default:"networkidle"
When to consider navigation complete.Options:
  • load - Wait for the load event
  • domcontentloaded - Wait for DOMContentLoaded event
  • networkidle - Wait until network is idle (no requests for 500ms)
  • commit - Wait for navigation to commit
referer
string
Set the Referer header for the navigation request.

goBack

Navigate to the previous page in browser history.

goForward

Navigate to the next page in browser history.

reload

Reload the current page.

newTab

Open a new browser tab.
url
string
Optional URL to navigate to in the new tab.
contextKey
string
default:"newPage"
Context key to store the new page reference.

switchTab

Switch to a different browser tab.
tabIndex
number
Switch to tab by index (0-based).
urlPattern
string
Switch to tab matching URL pattern (regex supported).
contextKey
string
default:"currentPage"
Context key to store the switched page reference.

closeTab

Close a browser tab.
tabIndex
number
Close tab by index. If not specified, closes the current tab.

Common Parameters

timeout
number
default:"30000"
Maximum time in milliseconds to wait for the action to complete.
failSilently
boolean
default:"false"
If true, errors are logged but don’t stop workflow execution.

Advanced Waiting

waitForSelector
string
Wait for a specific element to appear before/after navigation.
waitForSelectorType
string
default:"css"
Selector type: css, xpath, text, getByRole, etc.
waitForUrl
string
Wait for URL to match pattern (supports regex).
waitForCondition
string
Wait for custom JavaScript condition to be truthy.Example: document.querySelector('.loading') === null
waitAfterOperation
boolean
default:"false"
When false, waits are executed before the action. When true, waits are executed after.

Retry Configuration

retryEnabled
boolean
default:"false"
Enable retry logic for failed navigations.
retryStrategy
string
default:"count"
Options:
  • count - Retry a fixed number of times
  • untilCondition - Retry until a condition is met
retryCount
number
Number of retry attempts (for count strategy).
retryDelay
number
default:"1000"
Delay in milliseconds between retries.
retryDelayStrategy
string
default:"fixed"
Options:
  • fixed - Constant delay between retries
  • exponential - Exponentially increasing delay

Examples

Basic Navigation

{
  "type": "navigation",
  "data": {
    "action": "navigate",
    "url": "https://example.com",
    "waitUntil": "networkidle"
  }
}

Tab Management

{
  "type": "navigation",
  "data": {
    "action": "newTab",
    "url": "https://example.com/login",
    "contextKey": "loginPage"
  }
}

Advanced Waiting

{
  "type": "navigation",
  "data": {
    "action": "navigate",
    "url": "https://example.com",
    "waitForSelector": ".main-content",
    "waitForSelectorType": "css",
    "waitForSelectorTimeout": 10000
  }
}

With Retry

Navigate with Retry
{
  "type": "navigation",
  "data": {
    "action": "navigate",
    "url": "https://example.com",
    "retryEnabled": true,
    "retryStrategy": "count",
    "retryCount": 3,
    "retryDelay": 2000,
    "retryDelayStrategy": "exponential"
  }
}

Notes

URLs without a protocol (http:// or https://) are automatically prefixed with https://.
The networkidle wait condition is recommended for dynamic sites with AJAX requests, as it ensures all network activity has settled.
When switching or closing tabs, ensure the tab exists to avoid errors. Use failSilently for graceful error handling.

Build docs developers (and LLMs) love