Task 17
Published: 2024-01-20 14:34:26

Selenium is an open source automation frame work which is created by Jasson Huggins in the year 2004.
Selenium was written in pure JAVA and it is providing way to automation testers to write scripts in various.
programming like Java, Python, C#, PHP, JavaScript, Ruby and etc. Selenium is mostly used for web application testing and 
Selenium is supporting for several browsers and also selenium supporting to performing automation task and scraping data from
websites.

Selenium has several key components such as:

Selenium Web driver: this is a major of the component of Selenium that allow to interact with web browsers and
Web driver is provide a programming interface to control browsers, navigate through web pages and interact with 
web elements. It is composed of Selenium Client Library, Selenium API and JSON Wire Protocol, Browsers Driver and Browsers

Selenium IDE(Integrated Development Environment): this is also part of the component of Selenium
Integrated development environment for creating and running test cases, it is an extension, it can automate and record the entire automation process

Selenium Grid:
it is used to run parallel test on multiple devices running different browsers at different geographical locations, we can run multiple test cases simultaneously at the 
same time and it used the Master-Slave Architecture


why do we use Selenium for Automation?
it is an open-source framework so the cost can be reduced.
Selenium is supporting for multiple operating system such as Windows, MAC OS, Linux and Unix.
same as it is also supporting for various web browsers such as Chrome, Mozila Firefox, Opera, Safari and Microsoft Edge.
it can be Integrated with other testing frame work like pytest python behave, Junit, TestNG and other testing frame work.
it can be also completely integrate with CI/CD frameworks like Jenkins.
it will use less CPU and RAM during its working.

Selenium is freely the provides support, documentation, and a ecosystem of tools and frameworks.
Selenium can automate all audio, Video, images, every tag and every css content.
Selenium Grid enables parallel execution of tests across multiple machines and browsers that reducing the overall 
test execution time and increasing an efficiency.
selenium test automation is helping to find bug in order to deliver a good quality software for customers
and it is also reduce human resource that we can repeat the test case again again during release test without
human help, so the company can reduce their cost
Another point is that once the the selenium automation framework is created then 
we can Automate the test application and it will quickly run the all test cases
the report will be created very clearly with colors
we could reuse the code again and again
we can find the failure in an easy way on Jenkins (if it is in Red, then it will be a failed)
Selenium automation test will increase an efficiency, improve test accuracy and finally 
the maintain cost will be very low.
it will also reduce the manual testing capacity and the Automation test will cover maximum test coverage.
in case if there is couple of bug fix done, then we could do a regression test very quickly with limited coverage of automation test in order to confirm that the software
quality is not effected due to bug fixes.
we could run same selenium automation test environment in Staging system and Productive system
it can avoid the human mistake during release test