Smoketest
Blog

Notes on testing what you ship.

Playwright, browser agents, and the QA decisions behind a calm release. Written by the people building Smoketest.

22 posts
Engineering11 min read

Can AI Write Your E2E Tests? What Actually Works in 2026

AI can now draft, generate, and execute end-to-end tests, but it still cannot decide what your product must guarantee. This guide compares the four approaches that work in 2026 and shows which one fits your team.

Engineering9 min read

Playwright Fixtures vs Page Object Model in 2026

Your Playwright suite needs shared authentication, test data, and selectors, but choosing between fixtures and page objects can create more structure than clarity. In 2026, start with fixtures for lifecycle and dependency injection, add thin page helpers where repetition is costly, and reserve a full POM for large suites with dedicated owners.

Engineering10 min read

Stagehand Error Handling in Production

Stagehand failures arrive as schema errors, stale actions, early agent exits, startup timeouts, and deployment faults, but the docs do not put them in one error-handling model. This guide classifies each failure, decides what deserves a retry, and shows how to preserve the prompt and action trail for the postmortem.

Engineering10 min read

getByRole vs data-testid: A Playwright Selector Strategy That Survives Redesigns

Your Playwright suite passed until a redesign moved a wrapper, changed a class, or renamed a button. Use role and label locators for user-facing contracts, reserve test IDs for elements without a dependable accessible identity, and migrate CSS selectors as you touch them.

Engineering10 min read

Stagehand Cost Optimization and the Cache Misses Nobody Warns You About

Stagehand looked cheap until the token bill arrived, and the cache you enabled keeps returning MISS on identical calls. Here is what actually drives cost per action, the undocumented hit-count threshold behind silent serverCache failures, and how to write instructions that cache.

Engineering9 min read

Stagehand vs Playwright, and When You Need Both

Every Stagehand vs Playwright comparison stops at 'AI is flexible, selectors are fast.' The real production question is where each one belongs in the same script. Here is the hybrid architecture, the caching mechanics that make AI actions deterministic, and cost math from primary sources.

Engineering11 min read

The Best Automated Regression Testing Software in 2026

Your release cadence has outrun the team's ability to recheck every working test, and another coded test suite may create as much maintenance as confidence. This guide compares eight regression testing options by who writes and maintains the tests, with pricing verified in July 2026.

Engineering10 min read

How to Fix the Playwright Strict Mode Violation

Your test just died with 'strict mode violation: locator resolved to 2 elements' and the click never happened. The error means your locator matched more than one element, and Playwright refuses to guess. Here are the four fixes in preference order, plus why the error message itself usually contains the answer.

Engineering9 min read

Persisting Auth Sessions in Stagehand v3

Stagehand v3 removed storageState() and userDataDir persistence is reported broken, so your agent logs in on every run. The reliable fix today is exporting cookies with context.cookies() and re-importing them with addCookies(), with Browserbase Contexts as the cloud equivalent.

Engineering9 min read

How to Fix Playwright TimeoutError

Playwright can report the same slow or missing element as an action, assertion, navigation, or test timeout, and changing the wrong setting wastes time. This guide maps each error string to its timeout, then shows how to fix the underlying wait instead of hiding it.

The QA column is no longer where the sprint goes to die.

Move one ticket. Watch it come back tested. Then decide.