Selenium Interview Questions

 

1. What are the Selenium suite components?

Selenium IDE

It is a Firefox/Chrome plug-in that was developed to speed up the creation of automation scripts. It records the user actions on the web browser and exports them as a reusable script.

Selenium Remote Control (RC)

RC is a server that allows users to write application tests in various programming languages. The commands from the test script are accepted by this server and are sent to the browser as Selenium core JavaScript commands. The browser then behaves accordingly. know more at Selenium online training

Selenium WebDriver

WebDriver is a programming interface that helps create and run test cases. It makes provision to act on web elements. Unlike RC, WebDriver does not require an additional server and interacts natively with the browser applications.

Selenium Grid

The grid was designed to distribute commands to different machines simultaneously. It allows the parallel execution of tests on different browsers and different operating systems. It is exceptionally flexible and is integrated with other suite components for simultaneous execution.

2. What are the limitations of Selenium testing? 

  1. Unavailability of reliable tech support: Since Selenium is an open-source tool, it does not have dedicated tech support to resolve the user queries. 
  2. Tests web applications only: Selenium needs to be integrated with third-party tools like Appium and TestNG to test desktop and mobile applications.
  3. Limited support for image testing.
  4. No built-in reporting and test management facility: Selenium has to be integrated with tools like TestNG, or JUnit among others to facilitate test reporting and management.
  5. May require the knowledge of programming languages: Selenium WebDriver expects the user to have some basic knowledge about programming. know more at Selenium training
  6. 3. What are the testing types supported by Selenium? 

    Selenium supports Regression testing and Functional testing. 

    Regression testing - It is a full or partial selection of already executed test cases that are re-executed to ensure existing functionalities work fine.

    The steps involved are - 

    1. Re-testing: All tests in the existing test suite are executed. It proves to be very expensive and time-consuming.
    2. Regression test selection: Tests are classified as feature tests, integration tests,  and the end to end tests. In this step, some of the tests are selected.
    3. Prioritization of test cases: The selected test cases are prioritized based on business impact and critical functionalities.

    Functional testing - Functional Testing involves the verification of every function of the application with the required specification. 

    The following are the steps involved:

    1. Identify test input
    2. Compute test outcome
    3. Execute test
    4. Compare the test outcome with the actual outcome 

    4. What is the difference between Selenium 2.0 and Selenium 3.0? 

    Selenium 2.0 is a tool that makes the development of automated tests for web applications easier. It represents the merger of the original Selenium project with the WebDriver project. Selenium RC got deprecated since the merge, however, was used for backward compatibility

    Selenium 3.0 is the extended version of Selenium 2.0. It is inherently backward compatible and does not involve Selenium RC. The new version came along with several bug fixes and increased stability. 

    selenium3.

    5. What is the same-origin policy and how is it handled?

    Same Origin policy is a feature adopted for security purposes. According to this policy, a web browser allows scripts from one webpage to access the contents of another webpage provided both the pages have the same origin. The origin refers to a combination of the URL scheme, hostname, and port number.

    The same Origin Policy prevents a malicious script on one page to access sensitive data on another webpage. 

    same-origin

    Consider a JavaScript program used by google.com. This test application can access all Google domain pages like google.com/login, google.com/mail, etc. However, it cannot access pages from other domains like yahoo.com 

    Selenium RC was introduced to address this. The server acts as a client configured HTTP proxy and "tricks" the browser into believing that Selenium Core and the web application being tested come from the same origin.

  7. 6. What is Selenese? How is it classified?

    Selenese is the set of Selenium commands which are used to test your web application. The tester can test the broken links, the existence of some object on the UI, Ajax functionality, alerts, window, list options, and a lot more using Selenese.

    Action: Commands which interact directly with the application

    Accessors: Allow the user to store certain values to a user-defined variable

    Assertions: Verifies the current state of the application with an expected state

    7. Mention the types of Web locators.

    Locator is a command that tells Selenium IDE which GUI elements ( say Text Box, Buttons, Check Boxes, etc) it needs to operate on. Locators specify the area of action. know more Selenium online training from India

    Locator by ID: It takes a string parameter which is a value of the ID attribute which returns the object to findElement() method.

      driver.findElement(By.id(“user”));

    Locator by the link: If your targeted element is a link text then you can use the by.linkText locator to locate that element.

      driver.findElement(By.linkText(“Today’s deals”)).click();

    Locator by Partial link: The target link can be located using a portion of text in a link text element.

      driver.findElement(By.linkText(“Service”)).click();

    Locator by Name: The first element with the name attribute value matching the location will be returned.

      driver.findElement(By.name(“books”).click());

    Locator by TagName: Locates all the elements with the matching tag name

      driver.findElement(By.tagName(“button”).click());

    Locator by classname: This finds elements based on the value of the CLASS attribute. If an element has many classes then this will match against each of them. 

      driver.findElement(By.className(“inputtext”));

    Locator by XPath: It takes a parameter of String which is a XPATHEXPRESSION and it returns an object to findElement() method.

      driver.findElement(By.xpath(“//span[contains(text(),’an account’)]”)).getText();

    Locator by CSS Selector: Locates elements based on the driver’s underlying CSS selector engine.

      driver.findElement(By.cssSelector(“input#email”)).sendKeys(“myemail@email.com”);

    8. What are the types of waits supported by WebDriver?

    webdriver.

    Implicit wait - Implicit wait commands Selenium to wait for a certain amount of time before throwing a “No such element” exception.

    driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS);

    Explicit wait - Explicit wait is used to tell the Web Driver to wait for certain conditions before throwing an "ElementNotVisibleException" exception.

    WebDriverWait wait = new WebDriverWait(WebDriver Reference, TimeOut);

    Fluent wait - It is used to tell the web driver to wait for a condition, as well as the frequency with which we want to check the condition before throwing an "ElementNotVisibleException" exception.

    Wait wait = new FluentWait(WebDriver reference).withTimeout(timeout, SECONDS).pollingEvery(timeout, SECONDS).ignoring(Exception.class);

  8. 10. What is the major difference between driver.close() and driver.quit()?

    driver.close()

    This command closes the browser’s current window. If multiple windows are open, the current window of focus will be closed.

    driver.quit()

     When quit() is called on the driver instance and there are one or more browser windows open, it closes all the open browser windows.

    11. What makes Selenium such a widely used testing tool? Give reasons.

    1. Selenium is easy to use since it’s essentially developed in JavaScript.
    2. Selenium can test web applications against browsers like Firefox, Opera, Chrome, and Safari, to name a few. 
    3. The test code can be written in various programming languages like Java, Perl, Python, and PHP. 
    4. Selenium is platform-independent, and can be deployed on different Operating systems like Windows, Linux, and Macintosh. 
    5. Selenium can be integrated with third-party tools like JUnit and TestNG for test management.

    Intermediate Level Selenium Interview Questions

    12. How to type text in an input box using Selenium?

    sendKeys() is the method used to type text in input boxes 

    Consider the following example - 

      WebElement email = driver.findElement(By.id(“email”)); - Finds the “email” text using the ID locator

  9. 13. How to click on a hyperlink in Selenium?

    driver.findElement(By.linkText(“Today’s deals”)).click();

    The command finds the element using link text and then clicks on that element, where after the user would be redirected to the corresponding page.

    driver.findElement(By.partialLinkText(“Service”)).click();

    The above command finds the element based on the substring of the link provided in the parenthesis and thus partialLinkText() finds the web element. 

    14. How to scroll down a page using JavaScript?

    scrollBy() method is used to scroll down the webpage

    General syntax:

    executeScript("window.scrollBy(x-pixels,y-pixels)");

    First, create a JavaScript object

       JavascriptExecutor js = (JavascriptExecutor) driver;

    Launch the desired application

       driver.get(“https://www.amazon.com”);

    Scroll down to the desired location

       js.executeScript("window.scrollBy(0,1000)"); 

    The window is not scrolled vertically by 1000 pixels

    15. How to assert the title of a webpage? 

    Get the title of the webpage and store in a variable

        String actualTitle = driver.getTitle();

    Type in the expected title

       String expectedTitle = “abcdefgh";

    Verify if both of them are equal

       if(actualTitle.equalsIgnoreCase(expectedTitle))

       System.out.println("Title Matched");

      else

      System.out.println("Title didn't match");

  10. 16. How to mouse hover over a web element? 

  11. Actions class utility is used to hover over a web element in Selenium WebDriver

    Instantiate Actions class.

        Actions action = new Actions(driver);

    In this scenario, we hover over search box of a website

      actions.moveToElement(driver.findElement(By.id("id of the searchbox"))).perform();


Comments

  1. Thank you for sharing selenium interview questions and answers. Here are a few links for software testers,
    QA Job Board
    Search QA Jobs
    Software Testing Blog

    ReplyDelete

Post a Comment

Popular posts from this blog

What is Azure?

SharePoint Interview Questions

Selenium Interview Questions