Basic Selenium Interview Questions for Freshers What is Selenium? Selenium is a popular open-source automation testing framework used to automate web browsers. It provides a suite of tools for automated web testing, including a WebDriver API for browser automation and a set of libraries and utilities for managing testing activities. Selenium can be used to write automated tests in multiple programming languages such as Java, Python, C#, Ruby, JavaScript, etc. It supports various browsers like Chrome, Firefox, Safari, Edge, and Internet Explorer, and can be used to test web applications on multiple operating systems like Windows, Linux, and macOS. Selenium is widely used in the industry to ensure the quality and reliability of web applications. What are the components of Selenium? Selenium is composed of several components that work together to automate web testing. The components of Selenium are: Selenium IDE: It is a record-and-playback tool used for creating automated tests without the need for programming knowledge. Selenium WebDriver: It is a library used to automate web browser interactions. WebDriver supports multiple programming languages and provides a rich API to interact with web elements. Selenium Grid: It is a tool used for parallel test execution across multiple machines and browsers. It allows testers to run tests simultaneously on different browsers and platforms. Selenium RC (Remote Control): It is a deprecated component of Selenium that was used before WebDriver was introduced. It allows testers to write automated tests using programming languages and execute them on different browsers. Selenium Core: It is the basic foundation of the Selenium suite and contains a JavaScript-based automation engine that can be embedded in browsers. These components work together to provide a comprehensive automation testing solution for web applications. What are the different types of locators used in Selenium? Locators in Selenium are used to identify web elements on a web page. There are several types of locators that can be used in Selenium to find web elements. The most commonly used locators in Selenium are: ID Locator: This is used to locate a web element using its unique ID. Example: driver.findElement(By.id(“username”)); Name Locator: This is used to locate a web element using its name attribute. Example: driver.findElement(By.name(“password”)); Class Name Locator: This is used to locate a web element using its class name. Example: driver.findElement(By.className(“btn-primary”)); Tag Name Locator: This is used to locate a web element using its tag name. Example: driver.findElement(By.tagName(“a”)); Link Text Locator: This is used to locate a web element using the text of a link. Example: driver.findElement(By.linkText(“Login”)); Partial Link Text Locator: This is used to locate a web element using a part of the link text. Example: driver.findElement(By.partialLinkText(“Sign”)); CSS Selector Locator: This is used to locate a web element using a CSS selector. Example: driver.findElement(By.cssSelector(“.login-form input[type=’text’]”)); XPath Locator: This is used to locate a web element using an XPath expression. Example: driver.findElement(By.xpath(“//input[@name=’username’]”)); These are the commonly used locators in Selenium, and the appropriate locator to use depends on the specific scenario and the structure of the web page being tested. What is the difference between findElement() and findElements() in Selenium? Both findElement() and findElements() methods are used in Selenium to locate web elements on a web page. However, there is a key difference between these two methods. findElement() method returns the first matching web element on the page based on the specified locator, while the findElements() method returns a list of all matching web elements on the page based on the specified locator. For example, if you use the following code snippet to locate a username input field on a login page: The findElement() method will return the first web element that matches the specified ID locator, which is the username input field in this case. On the other hand, if you use the following code snippet to locate all the input fields on the page: The findElements() method will return a list of all web elements that match the specified tag name locator, which are all the input fields on the page. So, the main difference between findElement() and findElements() methods is that the former returns a single web element while the latter returns a list of web elements. How can you handle alerts in Selenium? Alerts are commonly used in web applications to display important messages or to ask for user input. Selenium provides a way to handle alerts in web pages using the Alert interface. The Alert interface provides methods to interact with JavaScript alerts, confirm boxes, and prompts. Here is an example of how to handle an alert in Selenium: // Switch to alert windowAlert alert = driver.switchTo().alert(); // Get the text of the alertString alertText = alert.getText(); // Click on the OK button of the alertalert.accept(); // Click on the Cancel button of the alertalert.dismiss(); // Enter text in the promptalert.sendKeys(“Selenium”); // Get the text entered in the promptString promptText = alert.getText(); Here, the switchTo() method is used to switch the focus to the alert window. Once the focus is switched, you can use the getText() method to get the text of the alert, accept() method to click on the OK button, dismiss() method to click on the Cancel button, sendKeys() method to enter text in the prompt, and getText() method to get the text entered in the prompt. It is important to note that the switchTo() method needs to be used before interacting with the alert, and you cannot interact with any other element on the page while the alert is present. What is the use of Actions class in Selenium? The Actions class in Selenium is used to simulate complex user interactions with a web page, such as mouse clicks, drag-and-drop, keyboard events, etc. It provides a way to chain multiple actions together to perform a series of actions on a web page. Some of the common methods available in the Actions class are: click(): This method is used to simulate a mouse click on a web element. doubleClick(): This method is used to simulate a double-click on a web element. contextClick(): This method