Skip to main content

Using Claude Code, Cursor, or another coding agent? Paste this into your prompt to run cross-browser and real-device tests, debug sessions, and wire up CI on the TestMu AI cloud:
Console assertions let you verify browser console output: error messages, warnings, log messages, and uncaught JavaScript exceptions.

How Capture Works

KaneAI captures all browser console output automatically during each test step:
  • Continuous capture: Every console.log(), console.warn(), console.error(), and uncaught JS exception is recorded
  • Per-step scope: Each test step starts with a fresh capture. Console messages from previous steps are not carried over
  • Limits: Up to 50,000 messages are stored per step. When the limit is reached, the oldest 10% are dropped
  • No truncation: Message text is stored in full. Unlike network response bodies, console messages are never truncated
  • Object resolution: When JavaScript logs an object (console.log({status: "ok"})), KaneAI resolves it to the actual value instead of storing “JSHandle@object”
  • Multi-tab support: Console messages from new tabs and popups are also captured
  • Top-frame only: Messages from embedded iframes (payment widgets, third-party components) are not captured

Planning for Multi-Step Tests

Because console data resets each step, plan accordingly:
  • If you need to verify a console message later, extract and store it in the same step it appears
  • Console output from step 1 won’t be visible in step 3’s console log

Level Normalization

Console message levels are normalized to 5 values:

What You Can Query

Errors vs Exceptions

  • errors includes ALL error-level messages: both console.error() calls AND uncaught exceptions
  • exceptions is a subset of errors: only uncaught JavaScript exceptions
  • To check for app-level errors without exceptions: query errors where is_exception is false

Example Assertions

Example Extractions

Example If/Else