“Hey tester, we are going live with our change by this weekend. Are you ready for completion?” Sounds a lot familiar right?
Do you also come across situations at your workplace where the web application that you are testing is expanding at a fast pace and the regression testing is simply becoming uncontrollable?
Are you always asked to try and test more combinations for better quality or test the same application on multiple browsers which as a result eats up all your valuable time?
Tired of finding excuses to give your boss when asked for additional perks, such as automation (to showcase to the client apart from all the hard work and time that you put into this repetitive manual testing)? All this, along with the pressure to handle the current functionality changes, bug tracking, defect reporting and documentation?
Hmmm I get it… Operational cost savings, increased test coverage, improved quality, productivity, revenue, customer satisfaction and what not!
How you wish there was a tool highly flexible having cross-browser compatibility and support for multiple programming languages without any licensing cost. You must be thinking that this can happen only in dreams.
But no, wait, SELENIUM HAS COME TO YOUR RESCUE!!!
- Supports the execution of repeated test cases written in various PROGRAMMING LANGUAGES.
- Has MULTIPLE BROWSER and PLATFORM compatibility.
- Makes it possible to run tests in PARALLEL, almost unattended, thus saving time and money.
- Helps finding defects which may be missed during manual testing.
- Has large user base with helping communities and also a great documentation that is available online.
Oh yes, it is FREE (hurray)! Selenium is an OPEN SOURCE testing tool or to be precise, it is a suite of tools which we will see in a bit, in detail.
Now that it’s confirmed that the water’s all safe in the World of Selenium, you might want to dive right in and learn cool aspects of it right away. I understand how excited you are (just the way I am) and I highly appreciate it. But before breaking the surface and taking a quick dip, let’s spare a tiny moment to understand a few things,
- Target audience: Software Tester, Test Automation Engineer; Oh come on, any greedy Enthusiast
- Selenium Level: Beginner (“Newbies”) and Intermediate
- A very basic knowledge of object-oriented programming language such as Java is required
- A step by step explanation along with screenshots and code snippets will be provided wherever required
- Installation steps will also be covered along with necessary URLs
- While dealing with Web Driver, Java programming language along with JUnit testing framework will be used
Sounds a lot technical?
Trust me! It’s really easy to learn Selenium and we together can prove that in a short time.
So what have I got to help us achieve this?
SeleniumVille! Ha! A new word just popped up to me. Let’s use this instead of the traditional “List of Contents”.
With future in mind: The below is still work in progress. Hence a full version will be materialized as we progress.
- What is Selenium?
- Why automated testing?
- History of Selenium
- Selenium Tool Suite
- Browsers and Platforms supported by Selenium Tools
- Selenium Tools: A fight for Supremacy
- Selenium IDE
- Introduction, benefits and limitations
- Installation of Selenium IDE and Firebug
- Breaking the Surface: A First Look
- Know your IDE features (Menu bar – File, Edit, Actions, Options, Help and Base URL bar)
- Know your IDE feature Contd. (Toolbar, Test Case Pane, Test Script Pane, Log/Reference/UI-Element/Rollup pane)
- Command, Target and Value
- Recording and running a test case
- A glance on the Selenium commands
- Setting timeouts, breakpoints, start points
- Locating elements (by Id, Name, Link Text)
- Locating elements Contd. (by CSS, DOM, XPath)
- Assert and Verify
- Using firebug as an advantage
- Exporting test cases in desired language
- Other features (experimental features, generating commands – easy way)
- A quick peek at Plugins
- Pause and Reflect
- Surprise Freebie (It’s worth the wait!)
- Architecture and how it works
- Setting up WebDriver – Set-up in Eclipse
- First test script – By launching Firefox
- Executing the Test
- Code samples for launching other browsers
- JUnit Environment Set-up
- Running WebDriver tests in JUnit4
- Implicit waits
- Explicit waits
- Locating elements – Part 1 (by id, name, tagName)
- Locating elements – Part 2 (by className, linkText, partialLinkText)
- Locating elements – Part 3a (by cssSelector)
- Locating elements – Part 3b (by cssSelector contd.)
- Locating elements – Part 4a (by XPath)
- Locating elements – Part 4b (by XPath contd.)
- Timesaver/Shortcut – locator validation
- Handling a CAPTCHA
- Assert and verify
- Handling textboxes and images
- Handling radio buttons and checkboxes
- Selecting items in two ways (Dropdowns and multiple selections)
- Handling tables in two ways
- Looping through table elements
- Handling alerts/pop-up boxes
- Handling multiple windows
- Performing drag and drop, window maximize
- Handling frames and dynamic elements
- Selenium WebDriver Framework – Building blocks
- Using Apache ANT
- Generating JUnit report
- Report customization
- Taking a screenshot
- Saving screenshots to word document
- Sending emails (to multiple users, with attachments)
- Using property files as repositories
- Reading data from Excel – JXL
- Reading data from Excel – POI
- Reading data from Excel – JDBC
- Using Page Object Model (POM)
- Using Log4j with WebDriver
- Building a selenium WebDriver framework – One step at a time
- Selenium RC
- What is Selenium RC?
- Set-up and starting the server
- Running a test
- When to use Selenium RC?
- Selenium Grid
- What is Selenium Grid?
- Setting Grid up
- Running a Test
- Other considerations
- Limitations of Selenium
- Points to ponder
Watch out this space to dive deep and discover what makes the “World of Selenium” so cool!
You will be practicing Selenium in no time. See you soon. Have a great day!