In the world of software development, it is very important to never forget about the testing phase. This topic has been heard by a developer during his working life: from the time he started studying, until he retired, going through articles like this; And this is the way to maintain a minimal quality in any software development because it will continue that way for a long time.
In this article, we will focus on a specific case.The goal is to test the user interface, that is, check each link where it needs to go and each button does what it is about to do.
Selenium
It is a set of utilities that facilitate the task of obtaining test sets for web applications. This allows us to record, edit, and debug test cases, which can be executed automatically.
That is, a first step would be to provide a URL to the page you want to try. Next, we can look for and select elements that we know exist on the page we initially indicated.
For example, you can search for a link to the id “next-page” and then simulate a click on that link. This process will be done in any compatible language. While executing it, we will see how a browser opens on our screen and, without touching anyone; Previously done tasks are completed. From here, tests can complicate everything you want. It is possible to navigate between pages, fill in forms, check CSS, etc.
Driver
Selenium provides several browsers to run tests. For each of them it provides a driver. In this way the following are: ChromeDriver, FirefoxDriver, OperaDriver, AndroidDriver, and iOSDriver. If we want to use a browser that was not installed on our computer, but in a remote one, it would be necessary to use the Selenium-Server and Selenium-WebDriver tools simultaneously.
Selenium also includes a specific domain language for testing to write tests in a wide variety of programming languages, including Java, C #, Ruby, Groovy, Perl, PHP, and Python. The tests then created can be executed using most modern web browsers in various operating systems such as Windows, Linux, and OS X.
In addition to being a tool for recording tasks, you can edit them manually or create them from scratch. Actions are based on the use of different APIs in different languages (PHP, Ruby, Java, JavaScript, etc.). Among its main features we can name:
Selenium equipment
Selenium contains many devices. On one hand, the Selenium IDE is an extension for Firefox that registers our activity in the browser over a certain period of time; This activity is translated into a series of commands that we can repeat and repeat, including claims and warnings to test ourselves. This series of commands can be exported as scripts in very different languages: HTML, Python, Ruby, Java (JUnit), C # and a few others.
This generated script can later be executed by the Selenium webdriver (formerly called Selenium RC). It implements client APIs ready to be used with your preferred test environment, which will run on servers that manage the main browsers you have set up to test on them. That is, you can run tests automatically on all relevant browsers, so that you do not miss any details of your application.
What is cross browser testing?
Check that a user interface or web application, in general, is able to function properly on all the most popular browsers for Internet browsing, which is one of the burden associated with the work of the developer.
From this point of view, fragmentation due to vendor decisions does not make this task particularly simple, on the contrary, we usually find ourselves not only able to manage inconsistencies between different applications (cross-browser), but Those different versions also occur between. Same browser (cross-version).
Google Chrome, Firefox, Safari, Internet Explorer, Opera, Microsoft Edge and similar other solutions for desktop and mobile devices often have a different level of support for web technology specifications such as HTML, CSS, and JavaScript, which make those features There is a need to identify which can be used for as many users as possible. However, we are talking about thousands of constructions, which cannot always be tested through a simple manual verification.