3 ms·
> Page Object Models trade off clarity for encapsulation [and] obscure what's actually happening. This argument also applies to using a function for abstractio
by sa46 1y ago
> Page Object Models trade off clarity for encapsulation [and] obscure what's actually happening.
This argument also applies to using a function for abstraction.
I've just written a few dozen e2e tests with Playwright. The code looks like:
await invoiceDetailPage.selectCustomer(page, 'Acme');
await invoiceDetailPage.selectCustomerPoNumber(page, '1234567890');
await invoiceDetailPage.setCustomerReleaseNumber(page, '987654321');
...10-15 more lines
Each of those lines is 3 to 20 lines of Playwright code. Aggressive DRY is bad, but Page Object Models are usually worth it to reduce duplication and limit churn from UI changes.