Automating Software Tests Using Selenium is a practical manual aimed at all professionals and companies in the systems area and who aim to improve the quality of their services and / or products in a simple, efficient and low cost way.

In this book you will find all the features that the Selenium tool offers to implement a robust automated testing environment, such as: writing / executing test scripts, exporting / importing test scripts into a test project, running testing on different platforms and browsers.

Innovate your way to test software, embarking on this incredible world of automation and see through the results how machines can facilitate your day-to-day tasks.

* Digital Version (Ebook)

* Other Languages:

  • pt-br
  • en
  • es

Also available in bookstores:

What you will learn in this book

  • null

    Software Quality

    Factors that determine quality software.

  • null

    Software Testing Process

    Details of each step that makes up the software testing process.

  • null

    Software Test Environment

    Resources needed to create an environment conducive to testing.

  • null

    Software Test Tools

    Top free tools for testing software.

  • null

    Software Testing Techniques

    Several ways to test functional and nonfunctional software requirements.

  • null

    Automated Test Scripts

    Tutorial on how to elaborate, execute and export automated test scripts.

  • null

    Automated Testing Project

    Creation of a robust automated test design using the exported test scripts.

  • null

    Distributed Testing

    Running test scripts on multiple devices simultaneously.


Why automate the tests?

Thus, as in any other segment, the automation of the tests aims to improve the execution of the tests, resulting in numerous advantages such as:

  • Execution of the tests with the same efficiency, but in less time.

  • Drastic reduction of human failures from repetitive tasks (Regression Test).

  • Greater availability of testers, who may focus more on strategic activities.



Ideal for beginners in test automation

Book with good didactics, well explained and easy to understand. I highly recommend it to anyone who is starting with Selenium.

Elaine Ponsoni

Tester in Cast IT Group


Elaine Ponsoni

Tester in Cast IT Group

Book with good didactics, well explained and easy to understand. I highly recommend it to anyone who is starting with Selenium.

Recommended for anyone learning WebDriver

I read the book and I liked it! It has good didactics, simple and practical examples. Great for anyone who is starting to work with Selenium WebDriver. Congratulations on your work.

Geovane Nunes Sousa

Test Analyst at Sancor Seguros Brasil


Geovane Nunes Sousa

Test Analyst at Sancor Seguros Brasil

I read the book and I liked it! It has good didactics, simple and practical examples. Great for anyone who is starting to work with Selenium WebDriver. Congratulations on your work.

Get a free sample of the book

Subscribe to the mailing list to receive a free sample of the book.



The concern with the quality of software grew as the image of companies became increasingly exposed to the public through the emergence of web systems. By 1990, large companies in this industry acknowledged that billions of dollars were being wasted on softwares that lacked features and promised features. They lived that dilemma of wanting to produce the "perfect" software, but without having the time and effort required for such a feat. This led them to look for new ways to improve quality. And one of these ways was the improvement of activities related to software testing through automation. Unlike the philosophy many organizations follow, having an automated testing environment is not as costly and complex as it seems. With the widespread knowledge, today we have several open source automation tools available. With just a few clicks, it is possible to create efficient test scripts that validate the system's functionality as many times as it takes automatically. A good example of this is the use of the Selenium tool, which will be the proposal of this work.  


The term innovate comes from the Latin in + novare, which means "to do something new, to change or to renew". For the author Sarkar (2007), refers to everything that transforms or renews something, be it a product or process, producing results for the company. The "War of Innovation" between Google and Microsoft has been a great example of the importance of innovation in IT. In recent years, Google has innovated its search engine, which holds about 60% of that market. This has earned you a great financial return by selling advertising on your search engine. While Microsoft has decided to develop its own search engine, O Bing, which has been well accepted by users. In his lectures, Molinari (2010) often makes the following quote: "Either you change or you move." That is, if you change, you have to be for the better. Who wants to go beyond, in the sense of doing something that makes a difference and that brings positive results to the company, one must think of innovation. Otherwise, the competitor will do something different and better for the target audience. It is the law of survival. According to Molinari (2010), innovation in software testing can occur at any time within a company, either through a radical or incremental change. And a good way to do this is by opting for test automation.  


According to the authors Graham and Fewter (1999), the test automation consists in the use of a tool that imitates the interaction of the tester with the application. This practice, according to Molinari (2010), aims to reduce the execution time and the term of the tests. Although the intent of automation is to minimize manual procedures, Molinari (2010) ensures that the manual test is something irreplaceable. Even if the company automates 99% of the tests, there will always be a need for an analysis or a small test to be done. The rumor that the "robot" will replace the tester falls to the ground.  


As mentioned earlier, manual testing can not be eliminated, but reduced to the maximum and focused on specific cases where it is very expensive to automate. On the other hand, automated testing becomes indispensable for increased productivity and reduced time in what is usually and routinely in the test. Let's look at the classic case of automating a login: You enter the user and password of the application and confirm your login by clicking the enter button. Imagine now you run a test that logs in to 50 different users? What if, in addition to this main stream, you have to test exception streams as invalid or null data? It would be very laborious, would not it? With automation, we could record the action of a login, parameterizing the user and password with data read directly from a .csv file through a loop of 50 executions. Okay, we would have an automated test case. Every time you test the application login, you just have to run the script and verify that it behaves as expected for the recording. For regression and performance testing, there is no doubt that automated testing is the most appropriate. However, if it takes a long time to be recorded and you have no expectation of reuse in the future, manual testing is enough.  


In 2004, tester Jason Higging was testing an in-house application of ThoughtWorks (a company focused on agile software development) when he realized he could better manage his time in manual testing activities. To do this, he created a Javascript library that interacted with the browser, which soon would begin to interact with other browsers. This project was given the name Selenium, which is actually an analogy about an alternative test tool (open source) for testers who could no longer rely on Mercury's Quick Test tool, which by the way was paid and very expensive. In chemistry, Mercury's antidote is Selenium. That's where the name comes from. In 2006, the engineer of Google called Simon Stewart decided to explore even more the Selenium library, thus creating the WebDriver project, where it ended up being merged with the old library (Selenium RC), giving rise to the second version of Selenium in 2008 . Today, Selenium is a suite of tools: Selenium IDE, Selenium Remote Control, Selenium WebDriver and Selenium Grid. Each with a purpose, but with common goals, which is to ensure the automation of functional tests in a practical and efficient manner.  


Although there are already several test automation tools, Selenium stands out as a set of tools, allowing the user to test web applications in the most diverse forms of automation, such as: Create and run test scripts regardless of browser or operating system. Perform Load / Stress Testing by running test on multiple browsers from one or more computers. Add plug-ins that allow you to build robust test scripts that meet business needs. Integrate test scripts into a test project, be it Java, C #, PHP, Python, or Ruby.  

>>> To continue reading, download the free sample from the book. <<<<


Hugo Peres (Author)

Graduated in Systems Analysis and Development (UniCarioca) and Post-Graduate in Software Engineering (UFRJ). He was a Test Analyst for 3 years at a renowned software factory in RJ and wrote the first book on Selenium in Portuguese-BR. He currently owns Inove Teste, a project of his own that, through books and courses, aims to disseminate knowledge about test automation throughout the world.