On Feb 17, 2010, at 5:49 PM, Vincent Massol wrote:

> Hi,
> 
> Yesterday I wanted to add some functional tests for Create page/space actions 
> and I found that the Selenium version we're using doesn't work on Snow 
> Leopard (my OS) so I started looking at issues and found that the pb was 
> fixed in Selenium2/WebDriver. Since I had wanted to explore it for a while I 
> took the time to do a quick exploration...
> 
> Selenium2 is the merge of Selenium and WebDriver.
> 
> Pros of Selenium2:
> * 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)
> 
> Now Selenium2 also recommends to use the PageObject pattern which IMO is a 
> very good pattern that we should use. More here:
> http://code.google.com/p/selenium/wiki/PageObjects
> 
> In order to get a feel of it, I've committed a first test in the sandbox 
> using the PageObjects pattern:
> http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/webdriver-ui-tests/
> 
> To run the test:
> * Start a local XE on port 8080
> * Open the project in your IDE and run LoginTest as a JUnit test
> 
> Let me know what you think.
> 
> My opinion
> * We should test it more, on Ajaxy web pages to verify it's stable and 
> working well enough
> * If that works well enough then we could make it our default way of writing 
> functional UI tests and start migrating existing tests one by one + write new 
> ones in it

I forgot to mention that there's a backward compatibility driver too so 
existing tests are supposed to work too (with some doubts on complex sutff):
http://seleniumhq.org/docs/09_webdriver.html#emulating-selenium-rc

Thanks
-Vincent
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to