Task15
Published: 2024-01-28 05:26:33

**Difference between Selenium Webdriver, Grid and IDE?**
**Selenium WebDriver**
Its object-oriented API is very useful when more dynamic elements that need to be tested. With Selenium WebDriver, developers and testers are able to target exact elements on the page, to increase both the speed and accuracy of the testing.
**Broad language support** - Allowing your team to use the language they know best, without additional training needed. 
Multi-browser compatibility - Allowing for testing on multiple browsers to accommodate all possible users, as well as different user systems.
**Open-source** - This means you have vast stores of knowledge and tools that have built up over the years to solve any and all problems. 
**Community support** - Giving you the support you need when you encounter problems, have questions, or need additional tools and innovations for your tests.
**Easy implementation** - Selenium is easy to install and set up, so you can implement and start using it quickly. 
Compatible with a multitude of frameworks and other testing systems - You can plug in features you want into the framework you are already using.
**Selenium IDE** 

- Acts as a plug-in for your browser 
- Has point and click accessibility.
- Provides the ability to build out tests into a grid for parallel test execution.
- Provides the ability to execute testing remotely. This provides a significant advantage when testing multiple setups for the same test cases.
- Able to record user behavior and play it back for reviewing and QA purposes. 
- You can record interactions within the application as test steps.
- The application will test multiple locators before failing a test. The test can take longer, but it does work.
**Selenium Grid**
Selenium Grid is a smart proxy server that makes it easy to run tests in parallel on multiple machines. This is done by routing commands to remote web browser instances, where one server acts as the hub. This hub routes test commands that are in JSON format to multiple registered Grid nodes.
The two major components of the Selenium Grid architecture are:
Hub is a server that accepts the access requests from the WebDriver client, routing the JSON test commands to the remote drives on nodes. It takes instructions from the client and executes them remotely on the various nodes in parallel
Node is a remote device that consists of a native OS and a remote WebDriver. It receives requests from the hub in the form of JSON test commands and executes them using WebDriver.

**Qn2: Write a selenium script in java to open google and search selenium browser Driver.**
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Program1 {
   
    public static void main(String args[])
    {
        WebDriver driver = new ChromeDriver();
         driver.manage().window().maximize();
         driver.get("https://www.google.com/");
         WebElement ele= driver.findElement(By.xpath("//textarea[@id='APjFqb']"));
ele.sendKeys("Selenium browser Driver ");
ele.sendKeys(Keys.ENTER);
    }
}

**Qn:3 What is Selenium? How it is useful in automation testing?
Selenium is an open-source suite of tools and libraries that is used for browser automation.** 
It provides a single interface that lets you write test scripts in programming languages like Ruby, Java, NodeJS, PHP, Perl, Python, JavaScript, and C#, among others. Selenium is very extensible and can be integrated with other tools and frameworks like TestNG, JUnit, Cucumber, etc.
<u>Importance of Testing in Selenium</u>
Manual testing can be time-consuming and prone to human errors. Selenium Automation allows tests to be executed quickly and accurately, reducing the human mistakes and ensuring consistent test results.
Selenium allows developers and testers to automate the testing of web applications across different browsers and platforms.
**Language Support** : Selenium allows you to create test scripts in different languages like Ruby, Java, PHP, Perl, Python, JavaScript, and C#, among others.
**Browser Support** : Selenium enables you to test your website on different browsers such as Google Chrome, Mozilla Firefox, Microsoft Edge, Safari, Internet Explorer (IE), etc. 
**Scalability** : Automated testing with Selenium can easily scale to cover a wide range of test cases, scenarios, and user interactions. This scalability ensures maximum test coverage of the application’s functionality.
**Reusable Test Scripts** : Selenium allows testers to create reusable test scripts that can be used across different test cases and projects. This reusability saves time and effort in test script creation and maintenance.
**Parallel Testing** : Selenium supports parallel test execution, allowing multiple tests to run concurrently. This helps reduce the overall testing time, making the development process more efficient.
**Documentation and Reporting** : Selenium provides detailed test execution logs and reports, making it easier to track test results and identify areas that require attention. 
**User Experience Testing** : Selenium can simulate user interactions and behavior, allowing testers to assess the user experience and ensure that the application is intuitive and user-friendly.
**Continuous Integration and Continuous Deployment (CI/CD)** : Selenium can be integrated into CI/CD pipelines to automate the testing of each code change. This integration helps identify and address issues earlier in the development cycle, allowing for faster and more reliable releases.

**Qn 4: What are all the browser drivers used in Selenium?**
Selenium has provided support for different browsers and in order to support the browsers selenium webdrivers are required. Below are the browser drivers that extends Remote WebDriver.
1. Chromedriver : This is used to drive chrome browser.
2. Internet Explorer Driver: This is used to drive IE browsers
3. Geckodriver: To drive firefox browser
4. EdgeDriver: This is used to drive Edge browsers
5. OperaDriver: To handle Opera browsers
6. SafariDriver: To handle Safari browsers

**Qn5: What are the steps to create the simple webdriver script .Expalin code.**
 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5zue3qdqi2dkkew0yrrk.jpg)
https://github.com/VidhushaArumugam/Guvi1/blob/master/src/main/java/Task15.java