We have a web application that makes extensive use of AJAXy Javascript in the UI. We have nearly complete code coverage of our backend using Shoulda and Webrat, and would like to extend our test suite to include full integration testing through the Javascript UI.
We tried Selenium but found it brittle and temperamental. Are there more reliable options?
UPDATE
For those still checking this out, we ended up using Xvfb so we can run Firefox without a screen. Allows us to run the test on a headless Jenkins CI server. We still have to run tests “live” locally occasionally to debug, but it works pretty well.
Answer
Hmm I would give Capybara a look, it can use selenium-webdriver (not to be confused with selenium-RC, they are different) for javascript testing. I haven’t found it very brittle when compared with Webrat… it seems to be fairly consistent.
As Chris Rueber says, there aren’t really any headless DOM interpreters that support JS as well – for now it’s fire up a web browser for your automation or write unit tests in the javascript itself (Which isn’t really integration testing either).
When you have a lot of selenium-webdriver-backed tests they can take awhile to run sometimes, but it’s surely better than no tests at all.