Can Selenium be used to testing single page JavaScript apps?
It's perfectly fine for pages that are heavy on the ajax, you just may have to do some fine-grained adjusting of the timeouts for each method you call since there won't necessarily be an obvious signal to Selenium when an ajax method completes (like there is when a page finishes loading).
checkout timeout usage here:
http://seleniumhq.org/docs/04_webdriver_advanced.html