Selenium Tutorial
Last updated on 19th Sep 2020, Blog, Tutorials
Selenium is a free and open-source test automation suite used for automating web-based applications. It supports automation across different browsers, platforms, and programming languages
Using Selenium, we can automate the functional tests and easily integrate them with Maven, Jenkins, and other build automation and continuous integration tools.
Components of Selenium Suite
Selenium Suite comprises of the following four components-
- Selenium IDE – Selenium IDE is a tool that helps you develop your Selenium test cases. It’s an easy-to-use Chrome and Firefox extension and is generally the most reliable method to develop test cases. It records users’ actions in the browser for you, using the existing Selenium commands, with parameters defined by the context of the web element. This is not only a time-saver but also an excellent way of learning Selenium script syntax. Previously known as Selenium Recorder, Selenium IDE was initially created by Shinya Kasatani, of Japan and contributed to the Selenium project in 2006. Scripts are recorded in a special test scripting language called Selenese for Selenium. Selenese comes up with commands for carrying out actions in a web browser and restoring data from the resulting page. Advantage of Selenium IDE -The tests recorded via the plugin can be exported in different programming languages like Java, Ruby, Python, etc.
- Selenium RC – Selenium Remote Control(RC) is officially deprecated by Selenium. Selenium Core was the first version. But with that version, testers had to install both Selenium (a JavaScript program) and the webserver containing the web application being tested on their local systems so that they would belong to the same domain.Then, another engineer, Paul Hammant decided to create a server that will act as an HTTP proxy to trick the browser into believing that Selenium Core and the web application being tested belong to the same domain, thus making RC a two-component tool.
- Selenium RC Server
- Selenium RC Client (Library containing the programming language code)
- Selenium WebDriver – Locating and testing of web elements in the web application is implemented through a browser-specific driver. It controls the browser by directly communicating with it.In Selenium WebDriver, you have the liberty to write test scripts in different programming languages like Java, Perl, Python, Ruby, C#, PHP, and JavaScript. But, make a note that Mozilla Firefox is Selenium WebDriver’s default browser.WebDriver was introduced as part of Selenium v2.0. Selenium v1.0 consisted of only IDE, RC, and Grid. But the major breakthrough in the Selenium project was when WebDriver was developed and introduced as an addition in Selenium v2. And, with the release of Selenium v3, RC has been deprecated and moved to a legacy package. Although you can still download webdriver and carry out tasks with RC, there wouldn’t be any support for it in Selenium v3.
Benefits of Selenium WebDriver
- Selenium WebDriver supports seven programming languages: Java, C#, PHP, Ruby, Perl, Python, and .Net.
- It supports cross-browser interoperability that helps you perform testing on various browsers like Firefox, Chrome, IE, Safari, etc.
- Tests can be performed on different operating systems: Windows, Mac, Linux, Android, and iOS.
- Selenium WebDriver overcomes limitations of Selenium v1 like file upload, download, pop-ups, and dialog barrier
Cons of Selenium WebDriver
- Detailed test reports cannot be generated.
- Testing images is not possible.
No matter what, these shortcomings can be overcome by integrations with other frameworks. That is, for testing images Sikuli can be used, and for generating detailed test reports, TestNG can be used.
Subscribe For Free Demo
Error: Contact form not found.
The advantages WebDriver has over RC are:
- Support for more programming languages, operating systems, and web browsers
- Ability to overcome the limitations of Selenium v1
- Simpler commands when compared to RC, and a better API
- Support for batch testing, cross-browser testing, and data-driven testing
The drawback WebDriver has when compared to RC is that test reports cannot be generated in WebDriver; whereas, RC generates detailed reports.
- Selenium Grid – Selenium Grid is a testing tool that lets you run your tests on various machines against different browsers. It is part of the Selenium suite that specializes in running multiple tests across different browsers, operating systems, and machines. You can connect to it with Selenium Remote Control by stating the browser version, browser, and operating system as per your choice. You will be able to specify these values through Selenium Remote Control capabilities. With Selenium Grid, one server makes a move as a hub. Tests communicate to the hub to get access to browser instances. The hub has a list of servers that provide access to browser instances (WebDriver nodes) and lets tests use these instances.Selenium Grid allows parallel testing and also allows managing different browser versions and browser configurations centrally (instead of in each individual test).There are multiple online platforms that provide an online Selenium Grid that you can access to run your Selenium automation scripts. For example, you can use LambdaTest. Selenium Grid has more than 2,000 browser environments over which you can run your tests and truly automate cross-browser testing.
Advantages of Selenium
Let’s now see some of the advantages of Selenium-
- Selenium is open source, there is no licensing cost for its usage.
- Scripting can be done in most of the widely used programming languages like Java, C#, Ruby, and Python.
- It supports most of the popular browsers like Chrome, Firefox, Internet Explorer, Opera, and Safari.
- Selenium IDE component of the Selenium suite provides record and playback features using which non-programmers can also write automation scripts.
- Selenium Grid helps in parallel and distributed testing.
Limitations of Selenium
Some of the limitations of Selenium are-
- Selenium does not provide desktop application automation support.
- Web Services – REST or SOAP cannot be automated using Selenium.
- Selenium WebDriver requires programming language requirements for script creation.
- For performing common tasks required in automation like logging, reading-writing to external files, we have to rely on external libraries.
Installation Steps
In order to develop Selenium RC or WebDriver scripts, users have to ensure that they have the initial configuration done. Setting up the environment involves the following steps.
- Download and Install Java
- Download and Configure Eclipse
- Configure FireBug and FirePath
- Configure Selenium RC
- Configure Selenium WebDriver
We need to have JDK (Java Development Kit) installed in order to work with Selenium WebDriver/Selenium. Let us see how to download and install Java.
Step 1 − Navigate to the UR.
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Step 2 − Go to “Downloads” section and select “JDK Download”.
Step 3 − Select “Accept License Agreement” radio button.
Step 4 − Select the appropriate installation. Click the appropriate link and save the .exe file to your disk.
Step 5 − Run the downloaded exe file to launch the Installer wizard. Click ‘Next’ to continue.
Step 6 − Select the features and click ‘Next’.
Step 7 − The user can choose the install location and click ‘Next’.
Step 8-The installer installs the JDK and new files are copied across
Step 9– The Installer installs successfully and displays the same to the user.
Step 10 − To verify if the installation was successful, go to the command prompt and just type ‘java’ as a command. The output of the command is shown below. If the Java installation is unsuccessful or if it had NOT been installed, it would throw an “unknown command” error.
Download and Configure Eclipse
Step 1 − Navigate to the URL: https://www.eclipse.org/downloads/ and download the appropriate file based on your OS architecture.
Step 2 − Click the ‘Download’ button.
Step 3 − The download would be in a Zipped format. Unzip the contents.
Step 4 − Locate Eclipse.exe and double click on the file.
Step 5 − To configure the workspace, select the location where the development has to take place.
Step 6 − The Eclipse window opens as shown below.
Configure FireBug and FirePath
To work with Selenium RC or WebDriver, we need to locate elements based on their XPath or ID or name, etc. In order to locate an element, we need tools/plugins.
Step1− Navigate to the URL
https://addons.mozilla.org/en-US/firefox/addon/firebug/ and download plugin.
Step 2 − The add-on installer is shown to the user and it is installed upon clicking the ‘Install’ button.
Step 3 − After installing, we can launch the plugin by navigating to “Web Developer” >> “Firebug”.
Step 4 − FirePath, a plugin that works within Firebug, helps users to grab the ‘XPath’ of an element. Install FirePath by navigating to “https://addons.mozilla.org/en-US/firefox/addon/firepath/”
Step 5 − The add-on installer is shown to the user and it is installed upon clicking the ‘Install’ button.
Step 6 − Now launch “Firebug” by navigating to “Tools” >> “Webdeveloper” >> “Firebug”.
Configure Selenium RC
Now let us look at how to configure Selenium Remote control. We will understand how to develop scripts with Selenium RC in later chapters, however for now, we will understand just the configuration part of it.
Step1- Navigate to the Selenium downloads section http://www.seleniumhq.org/download/ and download Selenium Server by clicking on its version number as shown below.
Step 2 − After downloading, we need to start the Selenium Server. To do so, open command prompt and navigate to the folder where the downloaded JAR file is kept as shown below.
Step 3 − To start the server, use the command ‘java -jar <<downloaded jar name >> and if java JDK is installed properly, you would get a success message as shown below. Now we can start writing Selenium RC scripts.
Configure Selenium WebDriver
Now let us look at how to configure Selenium WebDriver. We will understand how to develop scripts with Selenium WebDriver in later chapters, however for now, we will understand just the configuration part of it.
Step 1 − Navigate to the selenium downloads section http://www.seleniumhq.org/download/ and download Selenium WebDriver by clicking on its version number as shown below.
Step 2 − The downloaded file is in Zipped format and one has to unzip the contents to map it to the project folder.
Step 3 − The Unzipped contents would be displayed as shown below. How to map it to the project folder and how to start scripting would be dealt in the webDriver chapter.
Why Developers prefer Selenium With Java?
A good community of developers to create documentation and resolve issues has helped Java to become the most preferred language among the application developers. Thus, writing selenium test cases using Java has multiple benefits:
- Selenium supports Java. So, testers can leverage the active community of contributors and detailed documentation to write test cases
- Programs written in Java are faster than other popular languages like Python
- Java is more widely used in commercial applications as compared to other programming languages like Python and hence integrating Selenium tests it easier.
Eventually choosing the right language varies by project, organization, and individuals driving it. An essential criterion is to know the language in-depth when dealing with Selenium.
Selenium Career Opportunities
If you are thinking of pursuing a career in the web testing field, then you have landed on the right page. We will explain the various Selenium career opportunities that await trained and certified testers. The need for Selenium Web Testing has become one of the most integral parts of many businesses.
When there is a discussion about web testing tools, Selenium is surely one of the best in the field to help developers with automation testing. Hence, the demand for Selenium Web Testers is on the rise, and it is only going to increase in the future exponentially.
Selenium rose to become the most popular of all web testing tools, with a humongous 300 percent growth in terms of job postings during the previous three years, says Business Wire.
Selenium Future Scope: Major Companies Hiring Selenium Testers
If we are ready to dive deep into Software Testing and gain advanced-level expertise in it, then Selenium would be a cream puff for us. We can always enhance our skills for professional growth. Research by Forrester states testing as the ‘most popular phase of software delivery in which Artificial Intelligence can be applied.’
As there will be a continuous demand for software for various objectives in most of the companies and as no software has ever been produced without bugs, indulging with this open-source and easy-to-use tool will ensure us a fruitful career. There are plethora of MNCs that rely on Selenium and use it extensively for testing purposes such as Facebook, Microsoft. Cognizant, HP, Accenture, etc. They employ Selenium Testers with deep knowledge and Selenium certification.
Automation testing is an innovative field and, in a software development process, the development and the testing fields are ever in need of talented testers who can help with easy releases of new versions and the maintenance of the software. As there are various benefits that Selenium brings to the table, it is a widely chosen tool, tempting us to think of making a career in Selenium Testing.
Selenium Jobs in 2020:
2020 already brings a fortune as it is expected to have 27,453 new openings for software testing jobs across India, as per Shine.com. According to Naukri, around 5,297 Selenium job openings are waiting to test our skills and employ us.
These stats clearly show that there are great opportunities waiting for us to make advancements in our career, only if we invest enough time and effort in upskilling and practicing constantly.
Now, let us talk about the ways to upskill ourselves in the testing domain. In the next section of this blog, we will also see various Selenium jobs that we can grab with our Selenium Testing skills!
Selenium Job Roles!! Upskill Yourself
Selenium job roles vary from company to company, ranging from a mobile development company to a web application development company. Also, our experience in the industry matters when it comes to undertaking a specific Selenium job role.
Some of the popular Selenium job roles that an automation testing company can offer us are:
- Selenium Automation Engineer
- Selenium Tester
- Senior Quality Engineer – Automation
- Mobile Testing Lead
- Java Selenium Automation Engineer
- Selenium Test Analyst
- Senior QA Automation Engineer
- Software Development Test Engineer
The key skills required to take up any of these job roles are as follows: security testing, regression testing, performance testing, Java and Java APIs, testing QA automation, knowledge of automation frameworks, Selenium, functional testing, and JIRA.
Certification in Selenium:
CP-SAT
CP-SAT stands for “Certified Professional-Selenium Automation Testing”. It is #1 global certification in selenium. It is designed with concepts of testing web applications using selenium. The CP-SAT training is conducted by a trained (Licenced) trainer. Trainers should have excellent experience and also be CP-SAT certified.
Selenium Testing Training and Certification are available with multiple programming Languages
- Selenium with JAVA
- Selenium with Python
- Selenium with C#
A4Q Selenium Tester Foundation Certification
The A4Q Selenium Tester Foundation Certification is based on a practical training course aimed at test professionals who desire an understanding of how to design, implement and maintain automated solutions using selenium webdriver. This certification is for anyone who wants to validate and demonstrate skills in using Selenium Test Driver in Test automation. This course is ideal for automators and those who want to learn automation using the Selenium WebDriver toolset. While this course is accessible to anyone wanting to acquire basic, hands-on knowledge in selenium.
Other certifications
- To extend knowledge further in Test Automation gain ISTQB certification. ISTQB Certified Tester Advanced Level Test Automation Engineer.
- For Agile Environment, ISTQB Certified Tester Foundation Level Agile Tester.
Are you looking training with Right Jobs?
Contact Us- What is Selenium?
- Robot Class in Selenium Webdriver
- Selenium IDE
- How to Download & Install Selenium Ide?
- Selenium Interview Questions and Answers
Related Articles
Popular Courses
- Software Testing Training Course
11025 Learners
- Mobile Development Certification Courses
12022 Learners
- Java Online Training
11141 Learners
- What is Dimension Reduction? | Know the techniques
- Difference between Data Lake vs Data Warehouse: A Complete Guide For Beginners with Best Practices
- What is Dimension Reduction? | Know the techniques
- What does the Yield keyword do and How to use Yield in python ? [ OverView ]
- Agile Sprint Planning | Everything You Need to Know