Added Watir related data from Chris McMohan's comments:
| Feature | Watir | Selenium | Sahi |
| Browser based | yes | yes | yes |
| Browser type independent (IE, Firefox etc) | IE & FireFox | yes | yes |
| Scriptable/programmable (manageable/refactorable) | yes | not natively, but using ruby | yes (uses javascript) |
| Recorder | yes | Only on Firefox. | yes |
| Object spy | no | no | yes (hovering on any element,shows its accessor) |
| Simultaneuos playback of multiple scripts(reduces playback time) | yes | no | yes |
| Multiple domain support (go from google.com to thoughtworks.com) | yes | no | yes |
| Frames and popup support | yes | has problems | yes |
| Ant support (helps continuous integration) | yes | yes | yes |
| Multi language (non-ascii character)support | yes | yes | |
| HTTPS support | yes(Protocol independent) | yes | |
| Learning curve | Learn Ruby | Recorder reduces the need to write code.TextPad Clip Libraries can be used too. | |
| Language of scripting | Ruby - not native to the browser | Ruby - not native to the browser | Javascript - native to the browser andhence easily extendable. |
| Web-app independent | yes | no - needs to be deployed with app | yes |
| OS Independent | no | yes | yes |
Comments from Chris McMohan which I have incorporated into this comparison:
Actually, Watir has
a Firefox interface (version 1.0 just released, called "FireWatir")
a Recorder
methods intended for use at the command line like "show_links" so an object spy isn't necessary
Simultaneous playback (via Ruby threads)
Frames support (really excellent frames support)
Popup support native in version 1.5 (coming soon)
Ant support (not sure what you mean, but Ruby can be integrated with CruiseControl)
non-ascii character support (via Ruby)
Learning curve: Watir *is* a DSL for scripting the IE DOM. Ruby is just a bonus. :)

13 comments:
Actually, Watir has
a Firefox interface (version 1.0 just released, called "FireWatir")
a Recorder
methods intended for use at the command line like "show_links" so an object spy isn't necessary
Simultaneous playback (via Ruby threads)
Frames support (really excellent frames support)
Popup support native in version 1.5 (coming soon)
Ant support (not sure what you mean, but Ruby can be integrated with CruiseControl)
non-ascii character support (via Ruby)
Learning curve: Watir *is* a DSL for scripting the IE DOM. Ruby is just a bonus. :)
I stumbled upon IeUnit a few days back. It's only for IE, but has a lot of features that you describe.
Mind posting a comparison on that? :-)
Apropos the HTTPS support column, WATiR drives a browser (IE or FireFox) so the protocols it supports are basically the ones that the underlying browser supports. Both IE and FireFox work perfectly fine with HTTPS and by implication so does WATiR. To ask whether WATiR supports HTTPS is not very meaningful.
Brilliant! Keep up the good work.
There is also SWExplorerAutomation (SWEA)(www.webunittesting.com ).
SWEA supports frames (cross domain), windows and html dialogs (IE), popup windows, file downloads, page to image trasformations, visual data extractions using XPATH, DHTML pages. The SWEA Recorder allows visually record test scripts and generate NUnit code. The SWEA solutions (c# or VB.NET) can be run from ASP.NET or windows service (CruiseControl.NET).
Actually, https support IS an issue in Watir.
If, for example, you have a site with frames that loads an https url in one of the frames, Watir will not be able to access that frame.
This is because the browser thinks of the https url as a different domain (even if the actual domain is the same), and denies access to protect against "cross-browser scripting"
It seems most of your Selenium information is out of date.
There has been lots of recent activity on the Selenium project, adding in frame and https support. In addition, Selenium is scriptable in Perl, Python, Java, .net and ruby.
openqa.org/selenium is the place with all the details.
Does Watir support a .Net webbased application?
Do any of the tools support testing applets in web applications?
Watir has a working recorder?! Where?
I have been using HttpUnit for years but now would like to try automating browsers for functional testing. Thank you for the comparison table.
Note this comparison is on Selenium Core, not Selenium RC (which is more comparable to Sahi).
Check out RC before discounting Selenium.
Selenium actually has a sub-project (if you can call it that) called Selenium Remote Control (or Selenium RC) which allows you to create tests in several languages (i.e. Java/.NET/Ruby/Python). With it you can create tests and test suites using any testing framework (i.e. JUnit/NUnit/TestNG). It works by using a server which drives the browser and a client API that talks to the server. The server is written in Java and the client is written in several languages listed above.
Selenium RC also has experimental HTTPS support which I've sucessfully used to create tests that used a secure certificate.
The learning curve is whatever you make of it, meaning if you already have experience with JUnit, it's pretty easy to pick up the Selenium API. The ease of writing tests depends on how well you put id's in your HTML. Without id's you'll have to use X-Path or DOM or something.
The scripting language that drives the browser is actually JavaScript.
If you write a test with Selenium RC, it does NOT need to be deployed with the app.
I hope that clears things up a bit. Check out the home page for more information.
Post a Comment