- Introduction to Selenium WebDriver
- Selenium WebDriver and Selenium IDE: what are these?
- History and development Selenium WebDriver & Selenium IDE
- The necessity of selenium WebDriver & Selenium IDE
- Compatibility issues of Selenium WebDriver & Selenium IDE with Angular JS apps
- Platforms that are supported by Selenium WebDriver
- Selenium Web Driver – Coding Languages
- Learning abaout Selenium IDE
- Continuous Integration in Selenium
- Tools that can be used as Selenium
- The new version of Selenium
Introduction to Selenium WebDriver
If you want to know more about Selenium WebDriver & IDE – you are in the right place.
Web Drivers are frameworks for web automation that permits users to carry out tests on any browsers like Firefox, Chrome and others. Selenium is a software used for web application testing. It is a portable framework, which enables the users to perform functional tests using its tools.
These tests do not require the user to learn any test script language. Being an open source software web developer can use it without getting charged.
Selenium Webdriver and Selenium IDE are two of the several components of Selenium. Selenium WebDriver consists of a collection of open source Application Programming Interfaces (APIs).
These APIs are used for web application testing automation. Selenium Integrated Development Environment (IDE) is a kind of prototyping tool, which comes as Chrome and Firefox add-on. This tool develops tests instantly through its history recording and playback feature.
Selenium WebDriver and Selenium IDE: what are these?
As mentioned above, Selenium WebDriver is used to verify whether the functionality of the web application is according to the requirement. Being a successor to Selenium RC (Remote control tool), this tool supports several browsers ranging from Firefox and Chrome to Safari.
WebDriver tests web applications alone and are not qualified for window-related application testing. By the use of external tools such as Sikuli and AUTOIT, Selenium WebDriver can be used for windows component handling. This tool also supports several programming languages such as Java, C#, PHP and the likes for test script writing.
Selenium IDE provides a complete integrated environment for performing Selenium tests. As an add-on extension only available in Chrome and Firefox, Selenium IDE carries out 3 steps on functionality tests: recording, editing and debugging.
IDE ensures resilient tests by recording each interaction with elements of multiple locators. This is useful for enabling successful playbacks even if anyone of the locator fails. This tool allows reuse of test cases by the use of the run command.
With the use of plugins, the functionality of Selenium IDE can be extended or merge with third-party services.
History and development Selenium WebDriver & Selenium IDE
Selenium software was developed in 2004 by Jason Huggins. It was created as an internal tool at ThoughtWorks. With the entry of Paul Hammant into the team of programmers and testers at ThoughtWorks, the development of the second mode of operation occurred.
This tool was later called Selenium Remote Control (RC). It was open sourced tool. In 2007 when Huggins joined Google, he continued to work on the stabilization of Selenium RC with the help of other Google programmers.
The same year, Simon Stewart at ThoughtWorks created WebDriver which is a surpassing browser automation tool. In 2009 after the Google Test Automation Conference, both the projects were combined and called as Selenium WebDriver or Selenium 2.0.
Selenium IDE was developed by Shinya Kasatani from Japan. He used the IDE module to envelope the core code and wrap it into the Firefox Browser. This enabled test recording and playback in the same plugins. In 2006, he donated Selenium IDE prototype to the Apache’s Selenium project.
Selenium WebDriver Architecture Framework consists of four components.
Selenium Client Library: Libraries such as Ruby, Python and Java are supported by Selenium. This helps in the use of Selenium software in various browsers.
Browser Drivers: These Drivers transfer information with respective browser. This is performed without compromising the confidentiality of internal logic of browser’s functioning ability.
Browsers: Chrome, Firefox, Safari are few of the multiple browsers supported by Selenium.
Automation scripts reproduce the user interaction on a webpage, by using Selenium commands. An HTTP request is created for each Selenium command and forwarded to browser driver. Browser drivers receive the HTTP requests using an HTTP server.
This server interprets the command and forms the steps for implementing the commands. This leads to the execution of implementation steps on browsers.
The command execution status is reverted back to the HTTP server which forwards the status to command scripts.
The necessity of Selenium WebDriver & Selenium IDE
Selenium software is open sourced tools which makes it freely available for anyone. This helps any company to extend the frameworks and use as it pleases them. The other reasons why Selenium WebDriver and Selenium IDE is needed is:
● Unattended application testing is easier to execute using Selenium and its components
● Execution of multiple scripts can be performed parallelly
● Language bindings with multiple scripts make the work quicker and convenient
● Documentation and reporting is easier
● Due to language binding, these software tools can be used as language and platform challenger
● The standard functionality of Selenium can be expanded to a larger extent using a library of plugins
Compatibility issues of Selenium WebDriver & Selenium IDE with Angular JS apps
Automation of Angular JS apps using Selenium WebDriver and IDE is possible. The main issue is the use of different elements in the creation of Angular JS.
These elements are different from the elements that are recognized by Selenium. Examples are ng-model, CSS. As a result, WebDriver are not able to locate the Angular JS element.
This leads to direct compatibility issue between Angular JS and Selenium use.
Selenium WebDriver provides APIs (Application Programming Interface) to easily integrate with different programming languages. The languages can be Java, C#, Python, Ruby, Perl, PHP, etc.
How to integrate with C#
Before integration, infrastructure like the visual studio and visual studio setup needs to be present.
● Open visual studio to create a project. you need to click on the create new project option.
● Then you need to click on the test project appearing on the right panel.
● Select the unit test projects. If finding the test project option is hard, an alternate way is there. The user can select the online template option and search for the template.
● After this, the addition of Selenium references or drivers in C# project will be required. In order to do this,
● open the solution explorer
● expand the project
● Then right click on the references
● There will appear some options from which, you need to choose the ‘Manage NuGet Packages’ option. Then a new screen will appear on the display.
● There, you need to search for the Selenium WebDriver and click on it.
● Then install it.
● After installing, go to references and select the UnitTest1.cs option. This will give access to start actual coding for the integration of Selenium WebDriver in C# application. There are some references which need to be added. The added references provide all required classes and properties. It is also important to install chromedriver on your local machine. As per your expected browser, download a proper WebDriver.
● Now you can run the test cases by selecting the run tests option.
In order to install and integrate Selenium IDE, the user need to have Mozilla FireFox and an active internet connection.
– First, you need to launch and add FireFox followed by installing it.
– There will be a Selenium IDE icon on the display, which you need to click.
– Go to the FireFox DevTools in FireFox. FireFox devtools helps to inspect the HTML elements of the web application under test.
– You will get the name of the element from this, which your selenese command would act upon.
– Right-click on the page and select the inspect element. The shortcut for that option is Ctrl + Shift + I. you will see the interface.
– Then right-click on any element and keep the arrow over the copy to choose between CSS or XPath. This helps in object identification. The developer tools in chrome can also be used to identify object properties.
There are different additional FireFox plug-ins and add-ons created by other users. Those can be supported by Selenium IDE. Selenium IDE comes with 4 plug-ins by default.
Those are Selenium IDE: C# formatters, Selenium IDE: Java formatters, Selenium IDE: ruby formatters, Selenium IDE: python formatters.
These four plug-ins help Selenium IDE in converting selenese into different formats. You can see the list of all the add-ons you have installed in a plug-in tab available.
It also displays the name of the creator and the version number respectively.
You can specify their absolute path in any of these two fields in order to install them. The two fields are available as options in the dialog box.
They are namely, Selenium core extensions (user-extensions.js) and Selenium IDE extensions. There are a lot of extensions you can browse and install from here.
Platforms that are supported by Selenium WebDriver
There are currently 5 such browsers or platforms which are well supported by Selenium WebDriver.
FireFox support is the latest one. The latest and it’s previous release, the latest and the previous ESR (extended support release) are supported by the latest version of Selenium.
For example FireFox 27,26,24,17 all are supported by Selenium 2.40.0. It can easily be run on any platform supported by FireFox for those versions. A user can also install a custom FireFox extension.
IE (internet explorer)
Internet Explorer version 7,8,9,10 and 11 are supported by Selenium WebDriver. Version 11 needs some additional configuration. Each release is tested by the Selenium project on windows 7.
Safari uses SafariDriver. It requires safari 5.1+.
For opera software, opera driver is there. It is also known as
OperaChromiumDriver. The driver is a WebDriver implementation adapted by opera after being derived from ChromeDriver. This feature enables programming automation of chromium-based opera products which are supported for desktop and Android platforms.
It uses ChromeDriver and supports all chromium projects. It is available for chrome on both Android and desktop versions (Mac, Linux, Windows, and ChromeOS).
Selenium WebDriver – Coding Languages
The need for testing the variety of web application is fulfilled by implementing Selenium WebDriver. It is a collaboration of an open set of function and procedures.
They are set to examine the features and data of the web applications to test its accessibility. Its work is to verify that the web browsers meet the expected results. It is only restricted with examining the test results in respect to a web browser as a whole. It is not ideal for testing the security features of a web application.
Regressive testing of web browsers like Firefox, Chrome, and Safari is not possible with such Selenium scripts. With also the exception to the functionality, compatibility and performance-based issues in testing.
It can be accessed using the same code of action with supportive programming languages like Java, C#, Perl. It is considered to be effective in accessing various versions of operating systems introduced by Microsoft, Apple, and Linux.
The web applications are made more reliable and flexible with this high but simple form of programming in Selenium web id. These unique for of the testing environment require some specific interpreters and applications for backing the test results. Some of the topmost coding languages are given below with a brief description:
Java Scripts are the most commonly used form of coding languages. It is easily accessible by one who intends to use it for viewing the data as required. It helps in improving the test performance acting as an interface that executes the web browsers.
The web browser responds in accordance with the easy coding as per Java Scripts. It’s a compact programing language that can be pretty confusing for the beginners. It is easily accessible with complicated programming.
Selenium webdriver requires this too. It is one of the pillar programming languages of this. Let’s check out its functionalities.
It is a class-based general programming language. Java codes can be easily accessible with any platform that works on Java.
This can be done without any issue. They are basically written on using bytecodes. Java codes are similar to C and C++. Java is more popular as compared to some client-server web browsers.
Selenium webdriver has the power of Python too. This is a classy language, Let’s check how it helps.
Python is a high-level programming language used for coding. Its main feature is its code reliability due to its language is constructed to help programmers.
The programmers are able to code with clear and logical designs. It is an object-oriented approach with codes for any kind of projects. It is also effective in functional programming due to its dynamic typing procedures.
Python is a combination of counting various reference with a huge collection of information during a program’s execution. It also offers various supportive features that involve filters, map, and dictionary for functional programming.
It is a full compact programming language that is very popular for coding interfaces for web applications. The developers find it simpler and with less complexity for coding with their own requirements.
Selenium uses Ruby as well. This is one of the most important coding languages used in selenium. It is a balanced functional programming with imperative programming.
Ruby is structured with various languages like Perl, Smalltalk, Eiffel, Ada, and Lisp. With a better scope of coding with ruby, there are a number of coders worldwide. It is a scripted language with an ideal syntax.
It is considered to be more power in programming languages. It consists of variable actions and properties. As an object-oriented programming language, it consists of a bit of code which is implemented to its methods.
Ruby is a simple and easy language for the coders due to its flexible nature. It acquires the nature identical to the objects and methods used for codes.
A programmer can easily add coding to the methods and instruct on its functioning criteria.
Selenium requires PHP also. It makes the drive more user-friendly. A scripted language is available with an open source license. It is in an interpreter that is primarily used on Linux web servers.
PHP is a hypertext preprocessor that also serves as a recursive acronym. The Personal Home Pages Tools previously inspired it. Its main execution process is carried out on the web browsers acting as a substitute for the ASP technology.
The user encloses the PHP coding scripts with the HTML prior to replying for the respective request. The PHP scripts then interpret the web page and the performance followed.
The HTML pages vary according to the interpretation results of the scripts.
Learning about Selenium IDE
The portable architecture, selenium is used for testing of applications on the web. It renders a tool for playback which assists in performing functional tests.
These tests do not require a code or scripts. Along with this, it renders a language which is domain-specific for writing tests in any of the languages used in programming.
The Selenium IDE, short for Selenium Integrated Development Environment is a tool which can be used for the development of test cases of Selenium.
It records the actions of the users in the browser with the help of Selenium instructions. The element’s context decides the parameters of recording the actions.
The Selenium IDE does not require any extra set-up to use it. Only, the installation of the extension in the browser is needed. Selenium IDE is used t use and provides quick results or feedbacks. The open source tool can be used for automation of tests on the web applications.
The Selenium IDE can be used with any operating system and in any browser. It is one of the best advantages offered by Selenium IDE.
Is Selenium IDE helpful in creating test cases?
Selenium IDE is an excellent tool for the creation of tests cases. In Selenium IDE, the users can create test cases in a few simple steps.
• Launch the browser and Selenium IDE.
• Open the web application in which the test cases are needed to be run.
• Switch on the record button.
• Right click on the blank space in the web application. A dialogue box will appear showing the menus of the Selenium IDE.
• Perform the activity for which you need a test case to be created.
Say, for example, if the user wants to create a test case for an invalid login. Then, the user should open a web application which consists of a login form. The user should enter an invalid ID and an invalid password while logging in.
• Turn off the recorder and save the test case. The test case will be saved in ‘.html’ format.
• When the playback button is clicked, the whole script will be executed flawlessly.
In Selenium IDE, the users can open more than a single test at a particular period in time. The list of the presently opened cases of tests is displayed in the pane of test cases.
When the user opens the suite of tests, the pane, which consists of test cases, will open automatically and will show the list of test cases. The test case, which is presently selected, will appear in bold.
After the playback takes place, the cases of the test are stated either as ‘passed’ or ‘failed’ with the help of codes of colour.
The green colour denotes that the test has passed and the red colour signifies a ‘failed’ test. In the end, the summary of the cases of the test is given.
It shows the number of tests, their status, and the necessary information.
Reporting bugs with Selenium IDE
A bug is a flaw or an error which results in malfunctioning of the software or application. It makes the system to behave in an unintended manner and produce unexpected outcomes.
It is mandatory for a software tester or a developer to find the flaw in the application or software. It helps to maintain a smooth flow of the application and to produce the desired results.
Selenium IDE is a good tool to locate and identify the bugs within the application or software. The users must understand the software or application prior to the initiation of the testing.
Selenium IDE helps in preparing efficient test cases. These test cases are useful in testing the application in an effective manner.
Also, Selenium IDE helps in creating enough amount of data for the test which states the conditions and requirements of the test. In this manner, the Selenium IDE proves itself as an effective tool for identifying and reporting the errors.
At the end of the process of testing, a summary of the test appears. The summary helps in learning about the condition and functioning of the application.
The resultant outcome of the application can be compared with the expected outcome to find the defect or flaw in the application.
Selenium IDE helps in producing a specific and concise report of the bugs in the application. Some of the qualities which a bug report should possess are given below.
• The report must be precise and short.
• The total numbers of failures and success should be mentioned in the report.
• It should identify all the main causes of failures in the application.
• It must cover all the aspects of the test.
The Selenium IDE aids in generating a bug report which fulfils all the qualities mentioned above. We can conclude that it generates an effective bug report which is very beneficial to the developers and testers.
Using Selenium IDE for manual testing
Manual testing is a procedure of testing the software in which the software is tested for defects by an individual. The accuracy of the behaviour of the application is tested in manual testing.
The success of the manual testing lies at the mercy of the tester. The tester must be able to understand the application properly and the objective of conducting the test. An incomplete knowledge might result in the generation of an outcome which is not much helpful.
In such a situation, Selenium IDE proves itself as a simple and useful tool which aids in performing manual testing. It helps in creating cases for conducting the test on the basis of which testing can be performed.
It provides a summary of the test cases and records the results. The testers can analyze and evaluate these test cases for testing the application.
Also, Selenium IDE helps in identifying the flaws or defects in the application or software. The identification of bugs in the application is very important for the healthy well-being of the application.
Continuous Integration in Selenium
Continuous integration (CI) is a progressive process whose aim is to verify and assure software accuracy.
To ensure the proper running of the software, a set of tests runs automatically after each commit. And if any of the tests fail, instant feedback reflects saying “build is broken.”
A few of the CI tools are CircleCi, Jenkins, Bamboo, Bitbucket, etc. CI’s main aim is to avoid the challenges of integration.
In software development, integration is the process of integrating the software components that are created individually to form a whole product. Some of the advantages of CI are:
● Bugs can be detected early
● It helps in code break determination
● When the code base reverts to the bug-free state then only a small number of changes are lost
● Provides availability of “current” build regularly
● It enables the continuous deployment
● It enables automated testing
● It reduces the risk of longer time-consuming projects.
● Quality of the software increases
To build a web application and to deploy it on the web servers, a set of developers to write code is required that further builds the web app. This code is assigned in the version control system by the developers and is taken through the build phase.
Build phase is the first phase of a pipeline where with the proper tag of version the code goes to the system of version control. After the build phase, the testing phase comes where different kinds of testing are done. The unit test is one of them.
After the completion of the test, the code is deployed in the test server. It is the deploy phase where the app and code can be seen in the simulator. Once the code is deployed, one may run the other sanity test after which it can be deployed to the production.
If in any of the steps and error is found, an email is sent to the developing team and they fix the problem. The developing team pushes the codes in the version control system and back to the pipeline.
This lifecycle prolongs till the deployable product or code is available that is deployed to the production server where it is validated and measured.
Tools that can be used as Selenium
Selenium has a set of tools for automation testing and few of them are listed below:
- Selenium IDE
- Selenium WebDriver
- Selenium RC
- Selenium Grid
It is a continuous integration and deployment server built in Java. Jenkins provides CI services for any of the language combinations and codes using pipelines.
The main goal of Jenkins is to built and continuously test the software. It also monitors the other external running jobs that are executed. It helps in saving the time of the testers. It displays the result at the home page of the project.
The main reason for the Jenkins success is its facility of extension and open source. Jenkins has more than thousands of plugins for the extension of its functions.
It has been used by different huge companies such as Sony, Facebook, Netflix, eBay, Yahoo, etc.
Jenkins is available with a comfortable installation facility, various browsers for the plugin, configuration, extension and its ability to connect with other more computers.
Jenkins prefers Maven integration for making and testing the project in CI.
It is also one of the continuous integration tools used for testing applications, building and deploying them quite easily and rapidly on various platforms. It enables the user to set up it easily without any problem.
One of its main features is that it is based on the cloud server that does not require any further external servers. Due to its feature of the cloud-based system, it does not require maintenance and supports all software devices such as mobile, laptop, desktop, etc.
It is integrated by GitHub, Appfog, dotCloud, etc. CircleCI is also used by many large brands such as Amazon, Spotify, Facebook, etc.
Maven Integration with Selenium: It is an automation tool for the projects of Java language. Maven can be used to configure and maintain the selenium tests.
It works on the basis of the page object model, adds the software required for selenium testing, integrates with selenium, can be downloaded and installed.
In the case of new versions, only the update of POM XML is required and Maven set the updated software.
Selenium IDE (Integrated Development Environment) is one of the tools that create the test through its record and playback feature. It is an easy learning tool and can be installed effortlessly.
It records the actually performed actions by the user. After recording Selenium IDE exports, it as a script that can be used further by other programming languages. Its main constraint is that it supports only Firefox browser.
For each element with which it interacts with Selenium IDE records the multiple numbers of locators. Selenium IDE supports various languages such as Ruby, C#, Java, Python, etc.
One must have expertise in one language and code to work with it.
The languages preferred are Java or C#.
Selenium RC is one such tool that gives consent to write UI tests of automated applications in any of the programming languages.
If the scripts are required to be executed in browsers other than Firefox, then Selenium Remote Control is used. It is a great tool for testing the complex interfaces by the user under the CI system.
Also, it is a perfect tool for the Selenium IDE users, who prefer to write the tests in the programming languages that are more expressive than other HTML formats. This tool is available in two parts:
● A library of the client the most liked computer language of the user
● A server that launches and destroys the browsers automatically. Further, for web requests, it acts as an HTTP substitute.
The new version of Selenium
Change is the mother of innovation. Change is necessary to keep up in track with the upcoming trends and the latest technologies. Also, in order to excel in the marketplace, it is necessary to bring changes which satisfy the users and mesmerizes them.
Earlier, Selenium was just a tool for testing the projects which were developed by internal sources. With the progress in time, several new features were added in Selenium to make it more advanced and user-friendly. Selenium acquired huge fan-base and gathered trust and reputation from its users due to the continuous developments in it which impressed them.
Due to the new features which are incorporated in the latest version of Selenium, the setup and usage of Selenium have altered a bit. In order to use the latest version of Selenium, the users must lay emphasis on some of the requirements.
- To run the latest version of Selenium, the Java’s minimum version required is Java 8+.
- If the users run their script in versions of Firefox greater than 47.0.1, then they will need a GeckoDriver for the smooth functioning of Selenium. The versions of FireFox lesser than 47.0.1 does not require a GeckoDriver.
- The Apple users can run their tests in Safari with the help of SafariDriver.
- Updation of Guava to version 21 has been done.
- The latest version of Selenium does not support FireFox 47.0.0
In addition, there are many changes which are incorporated in the new version of Selenium. Some of the changes are listed below.
- In the grid, fixes related to stability are made.
- All the nodes of the grid are capable of offering help.
- It has been updated to the newest release of HtmlUnitDriver.
- The newest version enables the gathering of logs for the stand-alone server.
- The profile of FireFox is passed to GeckoDriver and FirefoxDriver.
- The newest version of Selenium cannot run Selenium RC by direct means. It requires an interface of WebDriverBackedSelenium and emulation to do so.
Is the new version more customizable?
Yes, of course!
Changes are made in Selenium for the convenience of its users and ease of its usage. The newest version is highly customizable to make its usage smooth and easy. When the testing of software is done with Selenium, a report of the outcome of the test is presented.
The reports state the errors, bugs, the status of the test, and many more things. Sometimes, the users might need fewer data in the reports, or else, want the outcome in another format.
The format of the report and also, the data within the report can be customized as per the requirement of the user.
Also, the interface of the Selenium can be customized as per the convenience of the users.