Reputation: 1402
I have searched and found many answers to my question but none of them satisfied me. My Question,
Upvotes: 0
Views: 1038
Reputation: 5113
Firstly, WebDriver is an API (with many language bindings and full/partial implementations: Java and C#, WebdriverIO, Protractor, Selendroid, Facebook PHP, etc.), also a specification. It is the API that all new Selenium work should be written against, and the only API that is fully supported and maintained.
You can perform tests against a variety of locally-hosted browsers using one of the various WebDriver implementations, without the need for any server running. In many cases that's completely sufficient.
However, if you need to distribute your tests over multiple machines / VMs, or connect to a remote Grid to access different operating systems and devices, then you need to connect to a standalone server (whether hosted by yourself, or by others, e.g. SauceLabs).
Forget about "RC", that's old technology and old terminology.
Upvotes: 0
Reputation: 54
It appears the major difference is the size of the API (server is bigger) and the ability to run RC-style scripts and "remote" Slenium WebDriver scripts, at first glance:
The Selenium Server is needed in order to run either Selenium RC style scripts or Remote Selenium WebDriver ones. The 2.x server is a drop-in replacement for the old Selenium RC server and is designed to be backwards compatible with your existing infrastructure.
I induce this includes the API of the WebDriver and would be used to test remote code (see needs assessment).
WebDriver is designed in a simpler and more concise programming interface along with addressing some limitations in the Selenium-RC API. WebDriver is a compact Object Oriented API when compared to Selenium1.0
Upvotes: 3