- User input should be able to be simulated using native key and mouse events.
- Test code should be able to suspend execution while waiting for network
or other events.
- Tests should be able to run in multiple browsers and on multiple platforms.
- Tests should not hardcode XPaths, element ids, or CSS class names.
- Test suites should be able to be run via a cron job.
I discuss the properties in detail, give an example of a system that exhibits most (but not all) of the properties, and then ask browser vendors to come in and save the day.