If you see automated testing as a software project and apply well-known principles, then you will save on maintenance costs and increase the reliability of tests.
The Don't Repeat Yourself (DRY) principle is a great example. Under time pressure, it is tempting to cut and paste similar tests from one area of the code base to another, don't. Projects evolve bending the shape of the code base; the tests need to be reusable to adapt to that change. Fragile tests push up maintenance costs. If you separate the code into pages, then when the workflow between pages changes, most of the testing code remains intact.
The Keep It Simple Stupid (KISS) principle implies keeping every aspect of the project as simple as possible. For example, it is possible to use real browsers for automated functional tests or the HtmlUnit framework...