“Hey tester, we are going live with our change of Selenium Tutorial 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?
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 to find defects which may be missed during manual testing.
- Has a large user base in 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.
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?
Selenium Tutorial Ville! 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 a work in progress. Hence a full version will be materialized as we progress.
Selenium Tutorial Topics
- 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
- Window maximize
- Using Actions Class
- Unable to locate an element? Read on…
- Selenium WebDriver Framework – Building blocks
- Using Apache ANT
- Generating JUnit report
- Report customization
- Report customization contd.
- Generating a PDF report
- Taking a screenshot
- Saving screenshots to a word document
- Sending emails (to multiple users, with attachments)
- Using property files
- Reading data from Excel using POI
- Using Log4j Part 1
- Using Log4j Part 2
- Running tests in headless mode
- Using Page Object Model (POM)
- 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!