There are a handful of pieces of general advice for writing solid browser automation tests we can review:
Selecting on user-visible text, and falling back on semantically meaningful attributes like rel as opposed to IDs & classes that are potentially significant to the implementation
Automating a11y testing
Superlinear build growth due to naive CRUD feature testing
After-action reports to actively identify and work to prevent against false negative test failures
Time-boxing the overall build to guard against bloat and ensure fast feedback
There are a handful of pieces of general advice for writing solid browser automation tests we can review:
rel
as opposed to IDs & classes that are potentially significant to the implementation