Improve them how though? Speed? Reliability? If it's just a nicer API, that's all well and good, but until the key problems I face with Selenium are solved (slow and non-deterministic tests) then a nicer API to it is just rearranging deck-chairs on the Titanic.
It seems that you try to use selenium 2, or webdriver, in order to run your unit tests.
Selenium is for browser test, and by its nature it can not run in milliseconds. Its execution time is in seconds.
Even when use phantomjs webdriver.
It is integration testing approach because it combines execution of several javascript modules. That run in real browser.
Selenium has its purpose, but fast test execution is not one of them.
> It seems that you try to use selenium 2, or webdriver, in order to run your unit tests.
Nope. Integration tests. But integration tests that start a Firefox instance from scratch and have to be rerun multiple times to pass due to non-determinism are slow.
Using Capybara alone one gets most of the stuff they had to implement (page, with, retries, ...) but I'll look into those gems you suggest.
Maybe the Scala ecosystem is still immature on the side of integration testing. They could implement them in Ruby if they are familiar with the language. I don't feel OK about using two languages but at least it could enforce strict separation between integration testing and the application.