Hi devs,
Jerome and I have explored using Selenium2 (see
http://xwiki.markmail.org/thread/cqbxdmhqdi36kovn)
The code is in
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/webdriver-ui-tests/
I'd like to propose to:
* Move the code in
http://svn.xwiki.org/svnroot/xwiki/enterprise/trunk/distribution-test/ui-te…
* Agree that from now on *new* UI functional tests are written using Selenium2
* Slowly migrate current functional tests over time (I have almost finished migrating the
login/logout tests for ex)
* Use the PageObject pattern as shown in the existing tests in
http://svn.xwiki.org/svnroot/xwiki/enterprise/trunk/distribution-test/ui-te…
The pros to use selenium2 are those listed in
http://xwiki.markmail.org/thread/cqbxdmhqdi36kovn:
* No more JS sandbox. In selenium1 all the selenium API is executed as JS in the browser.
In Selenium2 the browsers are controlled using their native APIs (JNA).
* Faster (as a consequence of the previous point)
* Allows to do stuff such as file uploads, etc since there's no longer the issue of
the JS sandbox
* No need to start a Selenium Proxy. All you need is to start XE and then you can run the
tests as simple JUnit tests.
* The API is much cleaner (this is to be expected with hindsight). See
http://seleniumhq.org/docs/09_webdriver.html
* There's a very fast executing HtmlUnit driver (not to be used with tests using JS
though since it emulates browser JS support and thus cannot guarantee the result in the
real browser)
Caveat:
* Selenium2 is still quite young so it's possible that there are cases when it'll
have bugs or be instable. We should still allow using selenium1 tests when this happens.
Note: I have configured hudson to run the selenium2 tests from the sandbox to see how
stable it is.
Here's my +1
Thanks
-Vincent