I have used WatiN and WebAii but I have limited experience with Selenium. How does Selenium differ from these other tools?
-
1On the basis of "No X vs Y questions" I'm voting to close. We reached the same conclusion on sqa.stackexchange.com/questions/245/qtp-vs-selenium– corsiKa ♦Commented May 19, 2011 at 23:29
-
1I think that if you were to rephrase the question with a little more flushed out detail of what you are testing, and ask about the benefits of using Selenium that you wouldn't find in WebAii, it would be a much more valid question.– Lyndon VroomanCommented May 20, 2011 at 0:34
-
1Please don't close questions like these. Vote down vapid answers if you like but thoughtful answers to questions like these have the potential to be extremely useful to many people.– JustinCommented May 20, 2011 at 1:06
-
3I rephrased but I don't see how it was necessary. These types of questions are not discouraged on StackOverflow and they provide interesting answers, so why should they be discouraged here? stackoverflow.com/questions/417380/watin-or-selenium– Trish KhooCommented May 20, 2011 at 11:53
-
1She didn't ask, "Is X better than Y?" -- she asked "How is X different from Y?" That sounds like something for which one could give an objective answer.– user246Commented May 20, 2011 at 13:28
2 Answers
Thanks for rephrasing the question.
In this case, I'll describe the differences between Selenium and WatiR/N as those are the two that I'm most familiar with.
The IDE for Selenium is immensely useful for those who are new to programming. It's how I learned my first bit of C#. After a while, it becomes next to useless. The same thing exists for WatiN, the Watin Test Recorder, although I've never actually used it.
If you need to access to more that you can't see on the page, Wat** is the way to go. Need find an element by ANY identifier (I've had to use element width because of lazy developers who wouldn't change anything). Although Selenium is getting better in this regard, I don't think that it's quite there yet.
Cross-browser functionality. Selenium wins this hands down. The browsers for Wat** are somewhat limited while Selenium has been moving to more browsers inclusind mobile browsers.
Ease of Use. Personally, I find WatiN to "just make sense". When I first switched to Selenium, I found the classes to be very confusing. Over time, it's starting becoming more fluid though as I begin to understand it more.
Community Support. WATiR has amazing community support, have a question, it's usually already been asked and documented somewhere. WatiN, let's just say...not so much. Selenium however is the company standard in many organizations and the support for it has been nothing short of amazing.
Hope this helps a little bit.
I've used Watir and a few other tools but the way I see it is that WAT** and some of the other options like that are framework tools, they give you a structure to build around. Selenium is by far a recorder that you can then use that recording in other ways, either export to another language and plug into the framework or if you do need something with a lot of repeatability then its easy to record something small and play it over and over again. Selenium to me allows you to generate quick and easy Unit Tests, which is more of its power in the realm of Free/Open Source tools, rather than a bulky Suite of tools like a Visual Studio which gives you the same function and a whole lot more. Some people record long scripts to play back, but I find those sorts of scenarios useless as they are too fragile, you can make short Units and plug them together in a suite and get more power of the tool.
If you need a free, quick Unit Testable Recorder for short tests that can export to other languages and frameworks, that also can be run in multiple browsers then Selenium is useful. If you need more than that then keep looking for something else.
EDITED to add note:
If you are comfortable coding with Selenium you can do so without using the IDE and just write Selenese in your language of choice. Some people prefer to do it this way, although if you are unfamiliar with the requirements the IDE is a good way to learn, although if you want to do serious testing you will want to extract your scripts into libraries to run your tests later on.
-
2The recording part of Selenium is a very small part. Experienced user of selenium don't go near IDE they write everything from scratch in code. Record and play is probably the least useful part of selenium if you are looking at creating robust and reliable regression tests on a dynamic website.– ArdescoCommented May 20, 2011 at 12:41
-
I've done that as well, but there are still a fair number of people I have seen who need a place to start and still use the IDE it's not all about GRID.– MichaelFCommented May 20, 2011 at 14:38
-
1You can't make unit tests with Selenium, if you are testing the GUI you are not testing a unit of code, acceptance tests and integration tests or even end to end tests yes but definetly not unit tests. Unit tests are the developers domain, not the testers.– ArdescoCommented May 22, 2011 at 14:33
-
1Please don't try and make out that testers call acceptance tests unit tests. This is just plain wrong terminology and continuing to use it will just confuse anybody new to the industry.– ArdescoCommented May 23, 2011 at 12:33
-
1This will be my last comment on this then. I'm not saying I haven't come across people using the wrong terminology before, it happens lots. I do however belive that it should be corrected when it happens so that people are taught the correct terminology and in general expectations are set appropriatly. If somebody tells me they want me to write unit tests i'll explain what unit tests are, explain why I won't be writing them and tell them what I will be writing and what the tests I write will deliver. Continuing to use incorrect terminology when you know it's wrong just compounds the issue.– ArdescoCommented May 23, 2011 at 15:33