The problem
The page loads clean. The console is empty. Every load time check passes. Then the user clicks Add to cart, or opens the date picker, or submits the form, and an error fires, a missing handler, a bad state update, a null on a value that only exists after interaction. Load time tests never touch the button, so they never see it. The user finds it on the first click.
The idea
Most checks photograph the page at rest. This one acts first, the way a user does, then listens for what broke.
What you will catch
- An error that only fires after a click or a form submit
- A broken handler or a bad state update after interaction
- The bug a load time check structurally cannot reach
How it works
Console capture is per step, so you do the interaction and then assert on the console in the same step. Errors that fire as a result of the click land in that step capture.
Run it now
kane-cli --tui
# then paste this objective:
Go to https://www.scrapingcourse.com/ecommerce/, open a product and click Add to Cart.
Assert: there are no console errors after the click.Or one line, for CI or sharing
kane-cli run "Go to https://www.scrapingcourse.com/ecommerce/, open a product and click Add to Cart.
Assert: there are no console errors after the click." --agentWhat prints
Example run. Your numbers will vary by site, build and run. The PASS / FAIL and the zeros are the stable result, the raw timings and counts are illustrative.
▶ open product + click Add to Cart ok ▶ assert no console errors 0 errors ✓ PASS RESULT PASS exit 0 ~1m 30s ~15 to 25 credits
Adapt it to your app
Go to <your page> and <perform the interaction>.
Assert: there are no console errors after <the action>.Why it works
Because console resets each step, asserting in the same step as the interaction scopes the check to errors the interaction caused, not noise from the initial load.
What it unlocks
Interaction bugs get caught before the user does. Chain a few interactions, each with its own console check, and you cover the actions a load time test will always miss.