Like Us On Facebook

Total Pageviews


  Introduction to Selenium                                                                                    

  1. What is Selenium?
  2. What should I know prior to learning Selenium?
  3. Install FireBug Add-on for Firefox
  4. How to use FireBug?
  5. Install Firepath Add-on for Firefox
  6. How to use Firepath?
  7. Install Java JDK and Configure
  8. Install Eclipse IDE
  9. How to Launch Eclipse IDE?
  10. How to create projects in Eclipse IDE?
  11. Whats Next?

  Selenium IDE                                                                                                                                       

  1. Install Selenium IDE
  2. What is Selenium IDE ?
  3. Record and Playback using Selenium IDE
  4. Validating Elements using Selenium IDE
  5. Validating Elements using Assert Mechanism
  6. Validating Elements using Verify Mechanism
  7. Viewing the source code of the steps recorded using Selenium IDE in our desired language
  8. What are Locators ?
  9. Different types of Locators to identify UI elements
  10. Tools in Selenium to find out the Locators
  11. Locate UI elements by ID
  12. Locate UI elements by Name
  13. Locate UI elements by Link
  14. Locate UI elements by XPath
  15. Locate UI elements by CSS
  16. Finding locators for UI elements using the Selenium IDE's recording feature

   Java + Eclipse for Selenium                                                                                                       

   28. Java for Selenium
   29. What is Java ?
   30. Install Java JDK
   31. Configure Java
   32. A Simple Java Program
   33. TextPad Editor Installation
   34. Write and execute Java Programs using TextPad tool
   35. Object Oriented Programming
   36. First Simple Java Program
   37. Second Simple Java Program
   38. 'int' data type
   39. 'double' data type
   40. 'long' data type
   41. 'float' data type
   42. 'char' data type 
   43. 'boolean' data type
   44. Assigning  values to variables of different data type
   45. Variable Declaration and Initialization
   46. Scope of Variables
   47. Type conversion
   48. Arrays
   49. Arithmetic Operators
   50. Relational Operators
   51. Boolean Logical Operators
   52. Assignment and '?' operator
   53. Operator Precedence
   54. 'if' selection statements
   55. 'switch' selection statements
   56. 'while' iteration statements
   57. 'do-while' iteration statements
   58. 'for' iterative statements
   59. 'break' jump statement
   60. 'continue' jump statements
   61. 'class' concept
   62. Install Eclipse IDE
   63. How to Launch Eclipse IDE
   64. How to create projects in Eclipse IDE?
   65. Run Java Programs in Eclipse IDE
   66. 'class' is a template for an 'object'
   67. Exporting a Java Project from Eclipse IDE
   68. Importing a Java Project into Eclipse IDE
   69. Declaring 'object' as an instance of a 'class'
   70. How to use dot(.) operator
   71. Methods
   72. How does a method return a value ?
   73. How does a method intake parameters ?
   74. Constructors
   75. 'this' keyword
   76. Method Overloading
   77. 'Constructor' Overloading
   78. Using 'objects' as parameters
   79. Argument Passing
   80. Returning Objects
   81. Recursion
   82. 'Public' Access specifier
   83. Default access specifier
   84. 'private' access specifier
   85. 'static' instance variables
   86. 'static' methods
   87. 'static' methods can only call 'static' methods
   88. 'static' methods can only access 'static' variables
   89. 'static' methods cannot refer to 'this' keyword
   90. 'static' block
   91. 'final' instance variable
   92. 'length' array attribute
   93. 'Nested' classes
   94. 'String' class
   95. Concatenate two string using '+' operator
   96. Using 'equals( )' method for comparing two strings
   97. Using 'length( )' method for finding the length of a string
   98. Using 'charAt( )' method to retrieve the character from string text
   99. String Arrays
 100. Inheritance
 101. subclass cannot access private members of superclass
 102. Assigning subclass reference to superclass reference
 103. Using 'super' keyword to access the instance variables of superclass
 104. Using 'super' keyword to access the methods of 'superclass'
 105. Calling 'Superclass' constructors using 'super' keyword
 106. 'Multilevel' Hierarchy
 107. Using 'super' in Multilevel Hierarchy
 108. Explicitly invoke Super class constructors
 109. 'Inheritance' and the order of executing constructors
 110. Method Overriding
 111. Dynamic Method Dispatch
 112. Abstract Classes
 113. Prevent overriding using 'final' keyword
 114. Prevent Inheritance using 'final' keyword
 115. Packages
 116. 'Package' and Access Protection
 117. Importing Packages
 118. Interfaces
 119. Class implementing multiple Interfaces
 120. Singe Interface implemented by multiple classes
 121. Superclass implementing an Interface and Subclass Inheriting it
 122. Subclass implementing an Interface
 123. Implementing the Interface containing variables
 124. Accessing the overriding method of sub-class using superclass object
 125. Interface References
 126. Abstract methods in Superclass must be implemented in Subclass
 127. Objects can't be created for abstract Classes
 128. Abstract classes can partially implement the Interfaces
 129. Interface inheriting another Interface
 130. Exception Handling
 131. What happens when we don't handle an exception ?
 132. How to handle an exception ?
 133. Using getChars( ) to extract more than one character from String Text
 134. Using 'equalsIgnoreCase( )'
 135. Using startsWith( ) and endsWith( ) methods
 136. Using compareTo( ) method
 137. Using indexOf( ) method
 138. Using 'lastIndexOf( )' method
 139. Using 'substring( )' method
 140. Using 'concat( )' method
 141. Using 'replace( )' method
 142. Using 'trim( )' method
 143. Using 'toLowerCase( )' and 'toUpperCase( )' methods
 144. StringBuffer class
 145. Using 'length( )' method with StringBuffer
 146. Using 'charAt( )' method with StringBuffer
 147. Using 'setCharAt( )' method with StringBuffer
 148. Using 'getChars( )' method with StringBuffer
 149. Using append( ) method with StringBuffer
 150. Using 'insert( )' method with StringBuffer
 151. Using 'reverse( )' method with StringBuffer
 152. Using 'delete( )' method with StringBuffer
 153. Using 'deleteCharAt( )' method with StringBuffer
 154. Using 'replace( )' method with StringBuffer
 155. Using 'substring( )' method with StringBuffer
 156. Using 'indexOf( )' method with StringBuffer
 157. Using 'lastIndexOf( ) method with StringBuffer
 158. Using shortcuts for System.out.println( ) in Eclipse IDE
 159. Renaming Java Projects, Packages and Classes in Eclipse IDE
 160. Finding the Projects location in Eclipse IDE
 161. Deleting the Java Project from Eclipse IDE
 162. Exporting a Project, Deleting it from Eclipse IDE and importing it
 163. Deleting the Java Project from the Eclipse IDE workspace path
 164. Debugging the Java Programs in Eclipse IDE
 165. Java Keywords in Eclipse IDE 
 166. Changing Font, Font Style and Font Size in Eclipse IDE
 167. Understanding API (Application Programming Interface)
 168. Understanding Java API
 169. Java API as JRE System Library in Eclipse IDE 
 170. Understanding the JRE System Library in Eclipse IDE
 171. Creating .jar file using Eclipse IDE
 172. Using 'length' array attribute with 2 dimensional arrays
 173. Using 'length' array attribute with 3 dimensional arrays
 174. 'double' data type arrays
 175. 'char' data type arrays
 176. 'String' data type arrays
 177. Defining and Creating Objects
 178. Assigning 'Object Reference' variable
 179. Data Types in Java
 180. Primitive Data Types
 181. Non-Primitive Data Types
 182. Local Variables and Instance Variables
 183. Java and Windows Command Prompt
 184. For-each loop
 185. varargs 'Variable Legth Arguments' 
 186. varargs parameter must be the last parameter in the method
 187. varargs parameter must be used only once in a method
 188. Creating more than one Class in a single Java Class file
 189. Objects cant be created for Abstract Classes
 190. Accessing members of Abstract Class using its subclass object
 191. Assigning the SubClass reference to SuperClass and accessing members
 192. Defining objects for Abstract Classes
 193. Defining objects for Abstract Classes for accessing its abstract methods
 194. Creating a sub class using Eclipse IDE options
 195. Java Literals
 196. Numeric Literals
 197. Storing Integer Literals in long data type variables
 198. Storing Floating Point Literals in float data type variables
 199. Using Character Escape Sequences in String Literals
 200. The Object Class 
 201. Object Class Methods
 202. Using equals( ) method of Object Class
 203. Printing an Object
 204. Using toString( ) method of Object Class
 205. Using toString( ) method of Object Class to print the values of the object
 206. Using getClass( ) method of Object Class
 207. Upcasting
 208. Cannot Cast objects of Classes which are at same level in hierarchy
 209. Downcasting
 210. instanceof operator
 211. Creating duplicate Classes in same project
 212. Default Package
 213. Creating Hierarchy of Packages
 214. Understanding the Packages in Java API
 215. Renaming the packages in Hierarchy
 216. Interface implemented methods must be declared as public
 217. Implementing the Nested Interfaces
 218. Exception is an Object
 219. Exception Hierarchy 
 220. Catching exceptions using Throwable Class
 221. Catching exceptions using Exception Class
 222. Catching arithmetic exceptions using ArithmeticException Class
 223. Handling ArrayIndexOutOfBoundsException
 224. Using multiple catch blocks
 225. Order of catch blocks
 226. Handling exceptions using Exception Class for safe side
 227. Methods of Throwable Class
 228. Printing the exception details in different ways
 229. Using getMessage( ) of Throwable Class
 230. Using toString( ) of Throwable Class
 231. Using printStackTrace( ) of Throwable Class
 232. Using throw keyword in exception handling
 233. Checked Exceptions
 234. Using throws keyword in exception handling
 235. Handling FileNotFoundException
 236. Using finally in exception handling
 237. Using finally block immediately after the try block
 238. Nested try catch blocks
 239. Catching Multiple Exceptions in a single catch block
 240. Using Programmatic Method instead of Exception Handling
 241. Wrapper Classes
 242. Integer Wrapper Class
 243. Byte Wrapper Class
 244. Short Wrapper Class
 245. Long Wrapper Class
 246. Float Wrapper Class
 247. Double Wrapper Class
 248. Character Wrapper Class
 249. Boolean Wrapper Class
 250. Boxing and UnBoxing
 251. AutoBoxing
 252. Auto-UnBoxing
 253. Implementing Auto-Boxing and Auto-UnBoxing in Methods
 254. Implementing Auto-Boxing and Auto-UnBoxing in expressions
 255. Compiler Compliance Level in Eclipse IDE
 256. Object Arrays
 257. Files
 258. Creating a file using createNewFile( ) method
 259. Creating files in your Project Workspace
 260. Creating folders using mkdir( ) method
 261. Using getPath( ) and getAbsolutePath( ) methods
 262. Using exists( ) method
 263. Methods of File Class
 264. I/O Streams
 265. Reading text file using read( ) method of FileReader I/O Class
 266. Writing text to a file using write( ) method of FileWriter I/O Class
 267. Append text in a file using append( ) method of FileWriter I/O Class
 268. Using FileInputStream I/O Class
 269. Using FileOutputSteam I/O Class
 270. Reducing the object creation statements
 271. Using PrintStream I/O Class
 272. System.out.println( )
 273. static import
 274. Java auto imports all the classes in java.lang package

  Selenium RC commands                                        

  Selenium WebDriver commands                                                                                                


Pavan Krishna said...

Hi Arun,

you said that you were working on Selenium RC and WebDriver...

Could you provide me those posts on RC & WebDriver? I would be very thankful for that.

BTW, I have gone through your Selenium IDE posts, they are really superb, very informative.
Keep on rocking.

Email Id:

Arun Motoori said...

Selenium RC Posts -

Selenium WebDriver Posts -

ranjan roy said...


Dhara Patel said...

Hi Arun,

I have completed Selenium Webdriver chapters and all chapters are really descriptive and easy to understand. But I guess, it is not complete tutorial for Web Driver and some chapters are missing for the TestNG with Webdriver. Are you planning to post them soon? Please post remaining chapters for TestNG and webdrivers, I would be really thankful.


nan said...

Hi Arun,

I need one information, if one web application is integrated with window application then how we can perform integration testing on that application through selenium.

Jayant Kr. sinha

Arun Motoori said...

@ nan - Selenium doesn't support window based applications. We can only automate Web Based applications.

venky said...

Hi Arun,

I have covered all your Web Driver posts. These are very helpful to understand and learn Selenium.Please send more posts which covers WebDriver+TestNG+ANT reports.

Keep Rocking...


Mayur Ostwal said...

Hi Arun,

I have tried Selenium Webdriver version 2.43 and Mozilla 32 it's not working for me it will work on FF 25 version [meanwhile I have tried out all the versions of FF from 26 to 32 but not worked]

can you solved this issue
I have used the Windows-7 , 32 bit platform for the same


Arun Motoori said...

@Mayur Ostwal - I can run scripts using Firefox 28 version. Firefox 28 is compatible with WebDriver version 2.43.

Mayur Ostwal said...

Hi Arun,

It's open only blank window and not pass any URL to the browser.
Although in changelog file of the 2.43 version they mention support for the FF 28 It's not work for me


Arun Motoori said...

@Mayur Ostwal - May be your browser version is automatically getting udDated to the latest version. Say Never for the updates, from your existing firefox browser options and then install the Firefox 28 of the firefox browser. Check this and reply.

Mayur Ostwal said...

Hi Arun,

I already done with this scenario but not worked, any other solution??


Arun Motoori said...

@Mayur Ostwal - Configure Selenium API in Eclipse IDE using Selenium Server (i.e. The single file available in the Selenium HQ Download Page , instead of Selenium WebDriver. User Firefox 28 version. Please follow the below steps if you have not understood the above -

1. Create a new Java Project in eclipse IDE
2. Download the Selenium Server Version instead of WebDriver
3. Only a single Server file will be downloaded
4. Copy and paste in your project
5. Go to the Project Properties, select Java Build path on the left add it to the Libraries using Add JARs button.
6. Configure the existing Firefox Browser version not to install the updates by selecting 'Never check for Updates' option in the 'Firefox' Browser -> Tools Menu -> Options -> Updates
7. Download Firefox 28 version from and install it
8. Close and launch the Firefox Browser and double check the installed version from Firefox Browser -> Help Menu -> About Dialog
9. Now create a Java Class in Eclipse IDE, write down the Selenium WebDriver code to launch an application
10. Save and Run the Java Class containing the Selenium WebDriver code.

Check this and reply.

Mayur Ostwal said...

Hi Arun,

This is definitely works 4 me even 28+ FF also.
But when open the instance of the web driver it is shown the window control buttons black.


Pra Din said...


I have update the IE driver to Ie2.43 when I run script it is showing the following error:

Started InternetExplorerDriver server (32-bit)
Listening on port 58198
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 137 milliseconds
Build info: version: '2.43.0', revision: '597b76b', time: '2014-09-09 20:52:14'
System info: host: 'ITDT00025', ip: '', 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0_60'
Session ID: cd40b8eb-3569-4190-896e-c21edd4d746b
Driver info:
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=11, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=true, requireWindowFocus=false, handlesAlerts=true, initialBrowserUrl=http://localhost:58198/, ie.forceCreateProcessApi=false, nativeEvents=true, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(
at org.openqa.selenium.remote.RemoteWebDriver.execute(
at org.openqa.selenium.remote.RemoteWebDriver.findElement(
at org.openqa.selenium.remote.RemoteWebDriver.findElementById(
at org.openqa.selenium.By$ById.findElement(
at org.openqa.selenium.remote.RemoteWebDriver.findElement(
at newWork.ieNewWork.main(

Please help me...

Aha Radio said...

Hi ,

Please add more details about the POM for any 3 page example.


Jessica Meri said...

Thanks for sharing these information. It’s a very nice topic. We are providing online training classesseleniumonlinetraining

Praveen Kumar said...
This comment has been removed by the author.
Naveen Yadav said...
This comment has been removed by the author.
Daisy Dreamz said...

Selenium IDE is a fully-featured IDE (Integrated Development Environment) that installs as a plugin in Mozilla Firefox and enables developers to test their web applications through Selenium. With the Selenium IDE, you can record user interactions with the web browser and play them back to test for errors. It's a powerful, robust IDE that radically simplifies and automates the QA testing process.

Blog Index