Selenium Blog The following are the 500+ posts from my famous Selenium Blog – Selenium By Arun Introduction to Selenium What is Selenium? What should I know prior to learning Selenium? Install FireBug Add-on for Firefox How to use FireBug? Install Firepath Add-on for Firefox How to use Firepath? Install Java JDK and Configure Install Eclipse IDE How to Launch Eclipse IDE? How to create projects in Eclipse IDE? Whats Next? Selenium IDE 12.Install Selenium IDE 13.What is Selenium IDE ? 14.Record and Playback using Selenium IDE 15.Validating Elements using Selenium IDE 16.Validating Elements using Assert Mechanism 17.Validating Elements using Verify Mechanism 18.Viewing the source code of the steps recorded using Selenium IDE in our desired language 19.What are Locators ? 20.Different types of Locators to identify UI elements 21.Tools in Selenium to find out the Locators 22.Locate UI elements by ID 23.Locate UI elements by Name 24.Locate UI elements by Link 25.Locate UI elements by XPath 26.Locate UI elements by CSS 27.Finding locators for UI elements using the Selenium IDE’s recording feature Selenium IDE – The Complete Reference Still not satisfied with Selenium IDE, go through the other posts of Selenium IDE from the below page: Selenium IDE Tutorial – The Complete Reference Java + Eclipse for Selenium 28. Java for Selenium29. 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 IDE – The complete Reference Still not satisfied with Core Java, go through the other posts of ‘Java for Selenium’ from the below page: Java for Selenium Tutorial – The Complete Reference Selenium WebDriver 275. Introduction to Selenium WebDriver 276. Downloading the Selenium WebDriver 277. Configuring Projects in Eclipse IDE to work with Selenium WebDriver 278. Is Selenium Server required by Selenium WebDriver ? 279. Selenium RC versus Selenium Web Driver 280. Create a JUnit Selenium WebDriver Test using Selenium IDE 281. Ensure compatible Firefox Browser is installed 282. Run the Created Selenium WebDriver Test 283. Introduction to JUnit 284. Using JUnit annotation in our Selenium WebDriver Tests 285. Eclipse Automatically adds the Package Name into the newly created Java Class 286. Writing Selenium WebDriver Test on our own 287. Implementing JUnit Annotations 288. WebDriver Class and its Predefined Methods 289. ‘get( )’ – Selenium WebDriver method to open the specified URL page 290. manage( ).window( ).maximize( ) – to maximize the Browser window 291. manage( ).window( ).setSize( ) – to resize the Browser window 292. Using Thread.sleep(Millie Seconds) to pause the execution 293. quit( ) – Selenium WebDriver method for closing the Test Browser window 294. What are Locators ? 295. Different Types of Locators to identify UI elements 296. Tools in Selenium to find out the locators 297. Locate UI elements by ID 298. Locate UI elements by Name 299. Locate UI elements by Link 300. Locate UI elements by XPath 301. Locate UI elements by CSS 302. Finding locators for UI elements using the Selenium IDEs recording feature 303. click( ) – predefined method for clicking a Link 304. click( ) – predefined method for clicking a Button 305. Using sendKeys( ) predefined method for entering text 306. Using click( ) – predefined method to select a radio button 307. Using click( ) predefined method for selecting a check box option 308. Using sendKeys( ) predefined method to select a list item from the drop down list 309. Using getText( ) to retrieve any elements Text 310. Using getPageSource( ) method 311. Using getTitle( ) method for retrieving the Title of the page 312. Using getAttribute(“value”) method for retrieving text from the text fields 313. Using isDisplayed( ) to verify whether an element is available 314. Using FirefoxDriver for running Selenium WebDriver Automation Tests on Firefox Browser 315. Using ChromeDriver for Running our Tests on Chrome Browser 316. Using InternetExplorerDriver for Running our Tests on Internet Explorer Browser 317. View the source code generated by Selenium IDE in Selenium WebDriver format 318. Renaming the Projects and its items using Eclipse IDE ‘Refactor’ option 319. Refactoring the Selenium Automation Code 320. Identifying few sample real time tests for implementing the Refactoring concept 321. Non-Refactored Selenium Automation code for the tests identified in previous post 322. Only one test should be written inside a single test method 323. Using @BeforeClass and @AfterClass JUnit Annotations 324. Refactoring the Selenium Automation code to make it readable 325. Upgrading Selenium WebDriver 326. HTML BASICS 327. Introduction to XPath 328. Understanding the hierarchy of HTML Source 329. Parse the HTML Source using its hierarchy and find XPath path 330. Different types of Nodes in HTML 331. Locate the Element Nodes using Relative XPath 332. XPath Functions 333. last( ) – XPath Function 334. position( ) – XPath function 335. contains( ) – XPath function 336. starts-with( ) XPath Function 337. Other XPath Functions 338. XPath Operators 339. Wild Cards usage in XPath 340. Using node( ) wild card in XPath Statements 341. Using * wild card in XPath Statements 342. Using | to combine XPath Statements 343. XPath Optimization 344. XPath Optimization Strategy One – Use the id attribute if available for the element but not used in XPath Statement 345. XPath Optimization Strategy Two – Use the combination of attributes to make the XPath more specific 346. XPath Optimization Strategy Three – If there is really nothing to distinguish find the first unique element from its siblings and add the index value to it 347. XPath Optimization Strategy Four – Use Relative XPath Statements instead of Absolute XPath Statements 348. Practice XPath 349. Easy and Regular way of finding XPath Statements for Elements 350. Typing the Text into Text box by Locating the Text Box field with XPath Statement 351. Using isSelected( ) predefined method to get the status of the radio buttons and check box options 352. Selecting values from the Drop down list by locating the Drop down field using XPath Statement 353. Clicking the Link by locating it using XPath Statement 354. Clicking the Button by locating it using XPath statement 355. Introduction to CSS selectors 356. html CSS Selector for locating the whole web page 357. body CSS Selector for locating the body of the web page 358. Absolute CSS Selector path 359. Relative CSS Selector path 360. Using # to select an element with a specified id 361. Using [attribute=’value’] to select an element containing the specified attribute 362. Using dot in CSS path to select an element with a specified class 363. Using [attribute] to select all the element containing the specified attribute 364. Locating first child, last child and nth child with CSS path 365. Locating different elements using a single CSS path 366. Using * wild card in CSS selector 367. Using ^= , $= and *= in CSS selector 368. Using Boolean Operators in CSS selector 369. CSS selector Optimization 370. CSS selector Optimization Strategy One – Use the id attribute if available for the element but not used 371. CSS selector Optimization Strategy Two – Use the combination of attributes to make the CSS selector statement more specific 372. CSS selector Optimization Strategy Three – Use Relative CSS Statements instead of Absolute CSS Statements 373. Practice CSS Path 374. Easy and Regular way of finding CSS Path for Elements 375. Typing the Text into Text box by Locating the Text Box field using CSS Path Statement 376. Using isSelected( ) predefined method to get the status of the radio buttons and check box options 377. Selecting values from the Drop down list by locating the Drop down field using CSS Path Statement 378. Clicking a link by locating it using CSS Path statement 379. Clicking the Button by locating it using CSS Path statement 380. Using sendKeys( ) command for entering text into a text box field 381. Using sendKeys( ) command for entering text into a Password field 382. Using sendKeys( ) command for entering single line text into a Text Area field 383. Using sendKeys( ) command for entering multiple lines of text into a Text Area field 384. Using clear( ) command to clear a text box field 385. Using clear( ) command to clear a Text Area field 386. Difference between close( ) and quit( ) Selenium WebDriver commands 387. Launching more than one Browser windows 388. Understanding how close( ) and quit( ) commands work when more than one window is opened 389. Understanding how close( ) and quit( ) commands work when only one window is opened 390. Try this if close( ) WebDriver command is not closing the Browser window 391. Using click( ) WebDriver command for selecting a check box option 392. Using click( ) command for deselecting a check box option 393. Using isSelected( ) method to get the status of the check box option 394. Using click( ) command to select a radio button 395. Using isSelected( ) method to get the status of the radio button 396. Using isEnabled( ) to find out whether the button is enabled 397. Using isEnabled( ) to find out whether the text box field is in enabled state or disabled state 398. Using sendKeys( ) command to select a list item from the drop down field 399. Using deselectAll( ) command to deselect any already selected list options in the multiple-selection Box 400. Using selectByVisibleText( ) command to select more than one list options from the Multi Select Box field 401. Using deselectByVisibleText( ) command to deselect any list option from the Multi Select Box field 402. Using selectByIndex( ) command to select any list option using its Index value from the Multi Select Box field 403. Using deselectByIndex( ) command to deselect any list option using its Index value from the Multi Select Box field 404. Using selectByValue( ) command to select the list option from the Multi Select Box field using the specified value 405. Using deselectByValue( ) command to deselect the list option from the Multi Select Box field using its value 406. Using selectByVisibleText( ) command with Drop Down Field 407. Using selectByIndex( ) command with Drop Down field 408. Using selectByValue( ) command with Drop Down field 409. Using navigate( ).to( ) command to open the specified URL 410. Using navigate( ).back( ) command to move backward in our browser 411. Using navigate( ).forward( ) command to move forward in our browser 412. Using sendKeys( ) command to browser a file 413. Using click( ) for clicking a button 414. Using click( ) for clicking a link 415. Using getAttribute(“value”) with a text box field 416. Using getAttribute(“value”) method with Password field 417. Using getAttribute(“value”) method with Text Area field 418. Using getAttribute(“value”) method with drop down field 419. Using getFirstSelectedOption( ) with drop down field to retrieve the label text of the list option that is currently selected 420. Using getFirstSelectedOption( ) with Multi-Selection Box field to retrieve the label text of the option that is selected first in the field 421. Using isMultiple( ) with a drop down fiel 422. Using isMultiple( ) with Multi-Selection Box field 423. Using getAllSelectedOptions( ) to get all the selected options in Multi-Selection Box field 424. Using getOptions( ) to get all the options available in Drop Down field 425. Using getOptions( ) to get all the options available in Multi-Selection Box field 426. Entering an integer variables value into a text box field using sendKeys( ) command 427. Using size( ) to retrieve the count of list options available in the drop down field 428. Using size( ) to retrieve the count of list options available in the Multi-Selection Box field 429. Locating elements using By.tagName( ) 430. Using findElements( ) 431. Using getTitle( ) to retrieve the title of the page 432. Using getText( ) to retrieve the elements text 433. Get XPath Count in Selenium WebDriver Selenium WebDriver – The complete Reference Still not satisfied with Selenium WebDriver, go through the other posts of Selenium WebDriver from the below page: Selenium WebDriver Tutorial – The complete Reference Advanced Selenium WebDriver Element Locator Firefox add-on Reading Tool Tip Text using Selenium WebDriver Different types of Selenium WebDriver Exceptions NoSuchElementException WebDriver Exception ElementNotVisibleException WebDriver Exception NoSuchFrameException WebDriver Exception NoAlertPresentException WebDriver Exception NoSuchWindowException WebDriver Exception SessionNotFoundException WebDriver Exception StaleElementReferenceException WebDriver Exception Handling lightbox using Selenium WebDriver Running Selenium WebDriver Automation scripts on Opera Browser Selenium 3 – Executing automation scripts on Firefox browser using Mozilla GeckoDriver Using HtmlUnitDriver for executing Selenium Automation scripts on a headless browser PhantomJS – Executing Selenium Automation scripts on a headless browser using PhantomJS Different Unit Testing Frameworks supported by Selenium Safari Browser – Execution Selenium Automation scripts on a Safari Browser History of Selenium Executing Selenium 2 Automation scripts on Firefox Browser Executing Selenium 2 Automation Scripts on Chrome Browser Selenium 3 – Executing Selenium 3 Automation Scripts on Chrome browser Xpath Expressions versus CSS Selectors Selenium IDE – Record and Playback tool of Selenium Beginners friendly tutorial for Selenium Selenium RC – The outdated legend of Selenium Prerequisites required for learning Selenium Selenium WebDriver – The latest, popular and more powerful API of Selenium SeleniumHQ – The official website of Selenium Selenium is a free and open source functional test automation tool Selenium Training Videos with Lifetime access at Rs 999 Selenium Grid – A concept for simultaneously executing tests on multiple machines and multiple browsers Executing Selenium 2 Automation scripts on Internet Explorer 11 Browser Selenium 3 – Execution Selenium 3 automation scripts on Internet Explorer 11 Browser Executing Selenium 2 automation scripts on different browsers XPath Helper plugin – Using this plugin in Selenium for locating the GUI elements in Chrome browser Relative XPath Helper – Using this plugin in Selenium for generating relative XPath locators in Chrome browser IntelliJ Idea – An another IDE for developing and executing the Selenium code Selenium 3 and Edge Browser – Executing Selenium 3 Automation scripts on Microsoft Edge Browser Validating XPath Expressions and CSS Selectors Locators in Internet Explorer browser using MRI Manual Testing Concepts Selenium Interview Questions Best Website to practice Selenium Programming languages supported by Selenium Installing TestNG in Eclipse IDE for Selenium Configuring TestNG in Selenium Java Projects Using Third Party APIs in Selenium Automation Advanced Selenium – The complete Reference Still not satisfied with Advanced Selenium, go through the other posts of Advanced Selenium from the below page: Miscellaneous, Interesting and Knowledgeable Selenium Tutorials Posts Selenium IDE Continued Selenese Commands – List of Selenium IDE commands ‘open’ command in Selenium IDE – Opens Application URL in Firefox Browser Using ‘click’ command in Selenium IDE for clicking an hyperlink Using ‘click’ command in Selenium IDE for clicking a button Using ‘click’ command in Selenium IDE for selecting a radio option Using ‘click’ command in Selenium IDE for selecting a checkbox option Using ‘type’ command in Selenium IDE for typing text into a text area field Using ‘type’ command in Selenium IDE for typing text into a text box field Using ‘refresh’ command in Selenium IDE for refreshing the page ‘highlight’ command in Selenium IDE for highlighting elements Using ‘pause’ command in Selenium IDE for halting the execution for a specified time ‘select’ command in Selenium IDE for selecting an option in a drop-down field Selenium IDE – The complete Reference Still not satisfied with Selenium IDE, go through the other posts of Selenium IDE from the below page: Selenium IDE Tutorial – The complete Reference