If you want reliable tests, you're going to have to write at least some of the code by hand. Test cases generated by the Firefox plugin are simply too fickle to be of much use. However, they can provide a decent starting point so that you don't have to write all of the code from scratch.
As an example, you say you want to add a static delay of 2 seconds between each action. What happens if the ajax on the page takes 2001 ms? Does that mean the test should fail? What if there is some latency issue between the machine running the test and the web server and one action takes a bit longer than usual? How much time will be spent verifying whether each failed test was truly a failure, and, if it wasn't, re-running the test to assure that the next pass is successful?
Just like any other software project, an automated test suite accumulates technical debt. Trying to build a Selenium test suite solely from tests generated by the Firefox plugin (or any other test generation tool) will result in the following negative consequences:
- Unreliable/flaky tests, as described above
- Tests that break if even the slightest changes are made to the HTML of the application under test
- Higher cost of test maintenance
There may be others as well, depending on your organization.
The primary benefit of using a test generation tool:
- A set of basic test cases can be created quickly and easily, so some benefit can be observed early in the process without much overhead
The question each team must ask is whether the pros outweigh the cons. In the short term, it may be beneficial to use the Firefox plugin to generate your tests, but if your team is already encountering problems of the nature you describe, it could spell trouble down the road.
If nobody on your team has enough programming knowledge to write test cases from scratch, it may be a good idea to request personnel who can help.