A detailed blog on Protractor and Selenium Server

Protractor is a Node.js program and an end-to-end test framework for Angular and AngularJS applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would.
+ Test Like a User: Protractor is built on top of WebDriverJS, which uses native events and browser-specific drivers to interact with your application as a user would.
+ For Angular Apps: Protractor supports Angular-specific locator strategies, which allows you to test Angular-specific elements without any setup effort on your part.
+ Automatic Waiting: You no longer need to add waits and sleeps to your test. Protractor can automatically execute the next step in your test the moment the webpage finishes pending tasks, so you don’t have to worry about waiting for your test and webpage to sync.
Setup:
npm install -g protractor
webdriver-manager update
webdriver-manager start
Run the test: protractor conf.js

Selenium Server
The Selenium Server is needed in order to run Remote Selenium WebDriver. Selenium 3.X is no longer capable of running Selenium RC directly, rather it does it through emulation and the WebDriverBackedSelenium interface.

Download version 3.141.5

To run Selenium tests exported from the legacy IDE, use the Selenium Html Runner.

To use the Selenium Server in a Grid configuration see the wiki page.

Selenium Remote Control (RC) is a test tool that allows you to write automated web application UI tests in any programming language against any HTTP website using any mainstream JavaScript-enabled browser.
Selenium RC comes in two parts:
+ A server which automatically launches and kills browsers, and acts as a HTTP proxy for web requests from them.
+ Client libraries for your favorite computer language.
Here is a simplified architectural representation….

Selenium Remote Control is great for testing complex AJAX-based web user interfaces under a Continuous Integration system. It is also an ideal solution for users of Selenium IDE who want to write tests in a more expressive programming language than the Selenese HTML table format.