Hiya! Ready for some time travel into the past? Get set to be stunned by the gems you will be unearthing today.
Long time ago, in the year 2004, there was this guy named Jason Huggins from ThoughtWorks, Chicago. He built Core mode of Selenium as “JavaScriptTestRunner” to verify the behavior of the web application he was testing, Time and Expenses application. He built it in a way that people could write tests using a keyword-driven approach in HTML files.
Slowly he started giving demos of his tool to huge audiences. Soon there were discussions to open source the tool and also make it a re-usable framework for the benefit of automating other such web based applications. So that’s the story of Selenium Core.
Core had a few limitations though, like ‘same origin policy’. Okay Big Word Alert! Let’s first understand what an origin is.
Origin is nothing but the scheme, host and port of a URL. So according to this policy it disallows a document retrieved from trying to access the DOM of a document retrieved from http://abc.org/sample.html as the host is different. Another example, I have launched a JavaScript program from http://example.com/ (port: 80) and so https://example.com (port: 443) becomes inaccessible as per this policy since ports are different.
Now, a guy named Paul Hammant from ThoughtWorks again, who circumvented this limitation by coming up with Selenium 1 or Selenium RC (Remote Control). This has a Selenium Client and a Selenium Server. The client would send commands to the server and this server would use JavaScript to drive the browser. So it doesn’t hook directly to any of the browser APIs. Also it supported multiple programming languages about which we will see in detail, later.
On to the next one now! Not only the simplest and easiest tool but also the only one that requires least programming knowledge for coming up with an automated test script among the Selenium Suite is the Selenium IDE. I know you would be very interested to know who came up with this gem. By the way, this is a “Made in Japan” product. The credit for developing this tool goes to Shinya Kasatani. He was the one who realized that the Selenium Core code could be wrapped into an IDE (Integrated Development Environment) module and can be plugged into the Firefox browser. It has a record and playback feature which is cooler than you expect! Let’s save that for later.
In around 2007, one more guy named Simon Stewart at ThoughtWorks was working on another web testing tool named WebDriver which did not rely on JavaScript. It not just had a client for each browser but also a ‘higher level’ API when compared to that of Selenium RC. These two projects merged and what we now have is the new Selenium or Selenium 2.
Aha, so the conclusion is:
- Selenium RC = Selenium 1
- Selenium merged with WebDriver = Selenium 2
Hope you enjoyed this trip to the past. See you again in another post. Have a great day!
nice post
Thanks
I have to agree with everything in this post. Thanks for the useful sharing information.
Nice post. Thanks for sharing this post with us.
Thanks