(by Jason R. Huggins)
Back in 2004, I was in charge of writing a new time tracking system for ThoughtWorks. We chose Plone, a Python-based content management system for the base of our system. We customized it quite a bit and spent a lot of time getting the time and expense data entry forms to look and act correctly.
And that's how Selenium began. It all started with a simple "add 1 row" button on the time entry form. The default timesheet page had five rows for entering time sheet data. However, some consultants worked on many projects in any given week, so they may need to have more than five rows. We needed an option to "add 1 row", and also needed to test it.
Implementing this feature sounded simple enough, but in actuality it wasn't. There are two general ways to do this, and they are very different in implementation style. The first one is a server-side technique: an "add 1 row" button submits the current form to the server, the request for adding 1 row is detected, and a new timesheet page is created this time with one extra blank row. The other technique ...