Web automation: Don't use Selenium, use Playwright
You&#x27;re going to get a lot of responses that say record-replay testing doesn&#x27;t scale, is unmaintainable, etc. They&#x27;re totally right.<p>But the thing is, early on when your app is in flux, neither does writing Selenium code. There&#x27;s a pretty big truism in UI automation that writing UI tests before a UI freeze is a recipe for a shit-ton of pain. Coding to ids or xpaths only gets you yay far if the UI flow itself fundamentally changes.<p>But re-recording might be easy.<p>Don&#x27;t use stuff like this for long-standing tests. Unless you architect your app just right so that IDs are always stable, and you never change the interface, it&#x27;ll break and break in ways that you can only fix by a complete re-record. Plus the tests tend to be extremely timing-fragile because recording uses delays instead of synchronization points, so they just won&#x27;t work in CI.<p>But <i>do</i> use stuff like this at your desk during bring-up, when the cost of a re-record is lower than the cost of a test rewrite and it&#x27;s ok to re-run the thing if the first try craps out due to a timing glitch.<p>And from there, keep an open mind.<p>I went to a GTAC (Google testing conference) where a presentation made a very good argument--with numbers and everything--that for smaller projects with simple and more or less static UIs, and where the tests were all fundamentally scripted, there was almost no advantage to coding the tests later. Record-replay was the best way to go.<p>But I definitely don&#x27;t think a system like PlayWright fully replaces remote stubs like WebDriver and coding tests in the languages that can talk to it.<p>At some point you hit the issue that the login screen changed and now every single test is invalid. It&#x27;s awfully nice if you used Page Object Model and you have a single-point-of-truth to fix it.<p>More to the point, test automation can do more than just execute a script repeatably. Randomized monkey testing is something you can really only do in code, ditto scenarios that need to talk to testing interfaces exposed from the app itself.<p>Glad you found a tool that resonates with you!