Skip to main content

Documentation Index

Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Defaults applied to every browser-based test in the project. Individual tests can override any of these values.
momentic.config.yaml
browser:
  defaultBrowserType: Chromium
  smartWaitingTimeoutMs: 5000
  pageLoadTimeoutMs: 8000

Identity

browser.defaultBrowserType
"Chromium" | "Google Chrome" | "Chrome for Testing"
Default browser used by all tests in the project.
momentic.config.yaml
browser:
  defaultBrowserType: Chromium
  • Chromium: lightweight, open-source browser supporting a basic feature set. Same engine Playwright and Cypress use.
  • Google Chrome: full Google Chrome build with extensions, PDF rendering, WebGL.
  • Chrome for Testing: headless-only Chrome optimized for automation.
browser.userAgent
string
User agent string sent on every request. Defaults to the current Chrome desktop UA.
momentic.config.yaml
browser:
  userAgent:
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
    like Gecko) Chrome/138.0.0.0 Safari/537.36"
browser.timezone
string
Default IANA timezone. Defaults to America/Los_Angeles. Per-test settings override this.
momentic.config.yaml
browser:
  timezone: America/New_York
browser.useHostTimezone
boolean
Use the host machine’s timezone instead. When true, all timezone settings (project- and test-level) are ignored. Default: false.
momentic.config.yaml
browser:
  useHostTimezone: true

Timeouts

browser.pageLoadTimeoutMs
number
Maximum wait time for a page to load, in milliseconds. Applies to new tabs and navigation events. Default: 8000.
momentic.config.yaml
browser:
  pageLoadTimeoutMs: 20000
browser.smartWaitingTimeoutMs
number
Maximum wait time for smart waiting between steps, in milliseconds. Default: 5000.
momentic.config.yaml
browser:
  smartWaitingTimeoutMs: 10000

Headers, storage, and identity

browser.extraHeaders
Record<string, string>
Extra HTTP headers added to every request the browser makes. Useful for auth tokens or custom headers.
momentic.config.yaml
browser:
  extraHeaders:
    Authorization: Bearer my-secret-token
    X-Custom-Header: CustomValue
browser.initialLocalStorage
Record<origin, Record<key, value>>
Local storage values to seed per origin before the test starts. Origin must include scheme, host, and (if non-default) port. Useful for feature flags or cached auth.
momentic.config.yaml
browser:
  initialLocalStorage:
    https://momentic.ai:
      momenticTestKey1: momenticTestValue1
      momenticTestKey2: momenticTestValue2
browser.localChromeExtensionPaths
string[]
Paths to unpacked Chrome extensions loaded into the browser before the test starts.
momentic.config.yaml
browser:
  localChromeExtensionPaths:
    - /tmp/eimadpbcbfnmbkopoojfekhnkhdbieeh
    - /tmp/bcjindcccaagfpapjjmafapmmgkkhgoa
browser.grantedPermissions
string[]
Browser permissions to auto-grant during the run. When omitted, all permissions are granted.
momentic.config.yaml
browser:
  grantedPermissions:
    - clipboard-read
    - clipboard-write
    - microphone
    - camera
    - geolocation
browser.ignoreHttpsErrors
boolean
Ignore HTTPS errors like self-signed certificates. Useful for internal / development environments. Default: false.
momentic.config.yaml
browser:
  ignoreHttpsErrors: true

Performance and stability

browser.disableGpu
boolean
Disable intensive graphical operations (WebGL, hardware-accelerated raster). Speeds up runs on machines without a dedicated GPU. May break sites that rely on WebGL. Default: false.
momentic.config.yaml
browser:
  disableGpu: true
browser.disableZygote
boolean
Disable Chrome’s zygote process. Can reduce process overhead in some environments, but may break certain features. Default: false.
momentic.config.yaml
browser:
  disableZygote: true
browser.disableFullStory
boolean
Block FullStory scripts from mounting during the run. FullStory’s high-volume DOM scanning can crash automated pages.
momentic.config.yaml
browser:
  disableFullStory: true

Run-data capture

browser.disableBrowserMonitoring
boolean
Disable Momentic’s default recording of console logs, network requests, HTML snapshots, and element screenshots. These power the run viewer’s debug tabs. Disabling can improve perf on sites with high log volume. Default: false.
momentic.config.yaml
browser:
  disableBrowserMonitoring: true
browser.disableConsoleLogs
boolean
Disable console log recording during runs. Default: false.
momentic.config.yaml
browser:
  disableConsoleLogs: true
browser.disableNetworkLogs
boolean
Disable network request recording during runs. Default: false.
momentic.config.yaml
browser:
  disableNetworkLogs: true

Page handling

browser.autoExpandIframes
boolean
Automatically expand iframes so Momentic can interact with elements inside them without configuring Act within iframe per step. Default: false.
momentic.config.yaml
browser:
  autoExpandIframes: true
browser.autoFollowNewTabs
boolean
Deprecated. Waiting for new tabs is inherently racy; use Switch tab steps instead.
Automatically switch to new tabs opened during the run. Default: false.
momentic.config.yaml
browser:
  autoFollowNewTabs: true
browser.allowPartialAccessibilityTree
boolean
Default: true. Momentic reads the browser’s already-computed accessibility data. This is fast and stable, but can be incomplete on pages that never finish loading. Set to false to force the browser to rebuild the tree from scratch on every read (more complete on slow pages, but significantly slower, and can destabilize the browser on very large pages).
momentic.config.yaml
browser:
  allowPartialAccessibilityTree: false
browser.showZeroOpacityElements
boolean | "inputs-only"
Default: true. Controls whether zero-opacity elements are visible to the AI locator agent and interactive steps.
Use hover steps to reveal hidden elements before interacting with them.
  • true: show all elements regardless of opacity.
  • false: filter zero-opacity elements out of the page context and block interactions on them. More closely mimics a human user.
  • inputs-only: still show zero-opacity <input> elements (useful for UI frameworks that style hidden inputs).
momentic.config.yaml
browser:
  showZeroOpacityElements: inputs-only

Locator and cache tuning

browser.globalLocatorRedirect
boolean | "always"
Default: always. Use Momentic’s algorithm to find the top-most interactable element when a target is covered by another element. Other frameworks throw or require force; this redirects to the covering element instead.
  • false: disabled.
  • true: only redirects on CLICK steps (backwards-compat).
  • always: redirects on all interactive steps.
See Global locator redirect for the full algorithm.
momentic.config.yaml
browser:
  globalLocatorRedirect: always
browser.forceClickForMissingRedirectElement
boolean
When globalLocatorRedirect can’t find a valid redirect target, force-click the original element anyway instead of failing actionability checks. Default: false.
momentic.config.yaml
browser:
  forceClickForMissingRedirectElement: true
browser.visualActions
boolean
Resolve element coordinates with a visual heuristic and use those coordinates for clicks, hovers, and typing. Default: false.
momentic.config.yaml
browser:
  visualActions: true
browser.ignoreHrefForCaching
boolean
Ignore the href attribute when matching cached anchors. Useful on sites with auto-generated or rotating links. Only applies when the anchor has text content. Default: false.
momentic.config.yaml
browser:
  ignoreHrefForCaching: true
browser.disableSecondaryCacheResolution
boolean
Disable HTML l-dist and template-matching cache fallbacks. Faster but less accurate. Cache entries can occasionally resolve to the wrong element. Default: false.
momentic.config.yaml
browser:
  disableSecondaryCacheResolution: true
browser.hybridSelectorMode
"off" | "test" | "prefer" | "always"
Hybrid selectors are in beta.
Default: off. Hybrid selectors combine text content, classes, attributes, parent hierarchy, and shadow-DOM-piercing to identify elements more resiliently than CSS selectors.
  • off: disabled (same as omitting the field).
  • test: save and resolve hybrid selectors, but report mismatches to Momentic without using them.
  • prefer: resolve with hybrid selectors first, fall back to CSS.
  • always: only use hybrid selectors; fall back to AI on miss.
Hybrid selectors weight text content heavily. If you need a specific child in a hierarchy, use nth keywords with Disable cache.
momentic.config.yaml
browser:
  hybridSelectorMode: prefer

AI context filtering

browser.importantAttributes
string[]
Extra HTML attributes that should never be pruned from AI context. Common testing attributes (data-test-id, aria-label, etc.) are always important. Suffix with * for a prefix match.
momentic.config.yaml
browser:
  importantAttributes:
    - data-topic-id
    - data-test-*
browser.importantClasses
string[]
CSS class names that mark an element as important. Matching elements are never pruned from AI context. Suffix with * for a prefix match.
momentic.config.yaml
browser:
  importantClasses:
    - list-controls
    - home-page-*
browser.bannedAttributes
string[]
HTML attributes to strip from AI context AND ignore when matching cached elements. Use this for attributes whose values change between renders (e.g. framework-generated for IDs) that otherwise bust the cache every run. Suffix with * for prefix matches.
momentic.config.yaml
browser:
  bannedAttributes:
    - for
    - aria-controls
    - data-dynamic-*
If the attribute is genuinely useful for identifying elements, list it under browser.importantAttributes instead.