Selenium beginner and Java Knowledge

You need step wise learning of selenium-java for automation. Don’t afraid that you need to know all at once. 

Core Java and OOPS concepts

http://www.homeandlearn.co.uk/java/java.html

First Program

http://www.pushtotest.com/selenium-tutorial-for-beginners-tutorial-1

Tutorial to get used with ant,maven,webdriver,eclipse,Junit,TestNG etc.

https://www.udemy.com/start-using-selenium-webdriver-with-java/

http://www.eviltester.com/

How does Selenium remote control internally works

Selenium RC launches the browser with itself as the proxy server (hence you may get certificate warning in some modes) and then it injects javascript – to play the test. This also means it can easily work in ALL browsers/platform – and it can be easily used to test AJAX(unlike professional tools).

_images/chapt5_img01_Architecture_Diagram_Simple.png

 

RC Components

  • The Selenium Server which launches and kills browsers, interprets and runs the Selenese commands passed from the test program, and acts as an HTTP proxy, intercepting and verifying HTTP messages passed between the browser and the AUT.
  • Client libraries which provide the interface between each programming language and the Selenium RC Server.

Selenium Server

Selenium Server receives Selenium commands from your test program and interprets them.

The RC server bundles Selenium Core and automatically injects it into the browser. This occurs when your test program opens the browser (using a client library API function). Selenium-Core is a JavaScript program, actually a set of JavaScript functions which interprets and executes Selenese commands using the browser’s built-in JavaScript interpreter.

The Server receives the Selenese commands from your test program using simple HTTP GET/POST requests. This means you can use any programming language that can send HTTP requests to automate Selenium tests on the browser.

Client Libraries

The client libraries provide the programming support that allows you to run Selenium commands. There is a different client library for each supported language. A Selenium client library provides a programming interface (API), i.e., a set of functions, which run Selenium commands from your own program. 

The client library takes a Selenese command and passes it to the Selenium Server for processing a specific action or test against the application under test (AUT). The client library also receives the result of that command and passes it back to your program. Your program can receive the result and store it into a program variable and report it as a success or failure, or possibly take corrective action if it was an unexpected error.

So to create a test program, you simply write a program that runs a set of Selenium commands using a client library API. And, optionally, if you already have a Selenese test script created in the Selenium-IDE, you can generate the Selenium RC code. The Selenium-IDE can translate (using its Export menu item) its Selenium commands into a client-driver’s API function calls. See the Selenium-IDE chapter for specifics on exporting RC code from Selenium-IDE.

Selenium Introduction

Selenium automates browsers.

Flash Demo:
http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1

Selenium IDE is a firefox plugin that gives you a basic recorder for recording tests. These tests are recorded in an HTML table based architecture using keywords, and IDE gives you the ability to then export the code out to other languages (Java, .Net, PHP, Python, Ruby, or Perl).

Selenium RC is an API accessible from multiple languages. Rather than recording tests, you write programs that call into the API to control the browser.

Selenium WebDriver is Selenium 2.0’s equivalent of RC. It’s an API that is called from whatever language you’re using (I believe it supports Java, .Net, Ruby, Python, and PHP_. This is a different API than that used in Selenium RC, but there are compatibilities built in to make the transition easier.

You can record and play back or code from scratch to devise your automationSelenium