Top 50 Selenium Interview Questions (2021) - Javatpoint
Top 50 Selenium Interview Questions (2021) - Javatpoint
⇧ SCROLL TO TOP
Selenium Interview Questions
Selenium is based on automating web applications for testing purpose, but it is certainly not limited
to just that. The web-based administration tasks can be automated as well. It automates browsers
Selenium has the support of some of the leading browser vendors who have adopted it to make
Selenium an essential part of their browser. It is also the core technology in many other browser
automation tools, APIs, and frameworks.
A list of most frequently asked Selenium interview questions, and their answers are given below.
Automation testing uses automation tools to write and execute test cases, no manual involvement is
necessary for executing an automated test suite. Testers prefer automation tools to write test scripts
and test cases and then group into test suites.
10 Sec
⇧ SCROLL TO TOP
Automation testing enables the use of specialized tools to automate the execution of manually
designed test cases without any human intervention. Automation testing tools can access the test
data, controls the execution of tests and compares the actual result against the expected result.
Consequently, generating detailed test reports of the system under test.
3) Name some of the commonly used Automation Testing tools that are
used for Functional Automation.
Lists of top 10 used automation testing tools for Functional Automation are as follows.
TestingWhiz
⇧ SCROLL TO TOP
HPE Unified Functional Testing (HP - UFT formerly QTP)
Tosca Testsuite
Watir
4) Name some of the commonly used Automation Testing tools that are
used for Non-Functional Automation.
Lists of some commonly used Automation Testing tools for Non-Functional Automation are as
follows.
5) What is Selenium?
Selenium is a portable framework for software testing. Selenium tool facilitates with a playback tool
for authoring functional tests without the need to learn a test scripting language.
Selenium is one of the most widely used open source Web UI (User Interface) automation testing
suite. Jason Huggins developed Selenium in 2004 as an internal tool at Thought Works. Selenium
supports automation across different browsers, platforms, and programming languages.
Selenium is not just a single tool but a suite of software's, each having a different approach to
support automation testing. It comprises of four major components which include:
Selenium supports various operating systems, browsers and programming languages. Following is
the list:
Browsers: Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari, etc.
Selenium v1.0:
It included three tools: Selenium IDE, Selenium RC, and Selenium Grid.
Selenium v2.0:
With the onset of WebDriver, RC got deprecated and moved to the legacy package.
Selenium v3:
The latest release Selenium 3 has new added features and functionalities.
Functional Testing
Regression Testing
Sanity Testing
Smoke Testing
Responsive Testing
Integration Testing
Selenium IDE is implemented as Firefox extension which provides record and playback functionality
on test scripts. It allows testers to export recorded scripts in many languages like HTML, Java, Ruby,
RSpec, Python, C#, JUnit and TestNG.
Selenium IDE has limited scope, and the generated test scripts are not very robust, and portable.
Selenium commands, also known as "Selenese" are the set of commands used in Selenium that run
your tests. For example, command - open (URL); launches the desired URL in the specified browser
and it accept both relative and absolute URLs.
⇧ASCROLL
sequenceTO
of Selenium
TOP commands (Selenese) together is known as a test script.
12) What are the different ways of locating a web element in Selenium?
In Selenium, web elements are identified and located with the help of Locators. Locators specify a
target location which uniquely defines the web element in the context of a web application. Thus, to
identify web elements accurately and precisely we have different types of locators in Selenium:
ID
ClassName
Name
TagName
LinkText
PartialLinkText
Xpath
CSS Selector
DOM
The list of WebDriver API's which are used to automate browser include:
AndroidDriver
ChromeDriver
EventFiringWebDriver
FirefoxDriver
HtmlUnitDriver
InternetExplorerDriver
iPhoneDriver
iPhoneSimulatorDriver
RemoteWebDriver
⇧ SCROLL TO TOP
14) List out some of the Automation tools which could be integrated with
Selenium to achieve continuous testing.
Selenium can be used to automate functional tests and can be integrated with automation test tools
such as Maven, Jenkins, &Docker to achieve continuous testing. It can also be integrated with
tools such as TestNG, &JUnit for managing test cases and generating reports.
The assertion is used as a verification point. It verifies that the state of the application conforms to
what is expected. The types of assertion are "assert", "verify" and "waitFor".
Assert: Assert command checks if the given condition is true or false. If the condition is true, the
program control will execute the next phase of testing, and if the condition is false, execution will
stop, and nothing will be executed.
Verify: Verify command also checks if the given condition is true or false. It doesn't halt program
execution, i.e., any failure during verification would not stop the execution, and all the test phases
would be executed.
XPath is also defined as XML Path. It is a language used to query XML documents. It is an important
approach to locate elements in Selenium. XPath consists of a path expression along with some
conditions. Here, we can easily write XPath script/query to locate any element in the webpage. It is
developed to allow the navigation of XML documents. The key factors that it considered while
navigating are selecting individual elements, attributes, or some other part of an XML document for
specific processing. It also produces reliable locators. Some other points about XPath are as follows.
XPath can be used as a substitute when you don't have a suitable id or name attribute for the
element you want to locate.
XPath Attributes
⇧ SCROLL TO TOP
18) Explain XPath Absolute and XPath attributes.
XPath Absolute:
XPath Absolute enables users to mention the complete XPath location from the root HTML
tag to the specific elements.
Syntax: //html/body/tag1[index]/tag2[index]/.../tagN[index]
Example: //html/body/div[2]/div/div[2]/div/div/div/fieldset/form/div[1]/input[1]
XPath Attributes:
XPath Attributes is always recommended when you don't have a suitable id or name attribute
for the element you want to locate.
Single Slash "/": Single slash is used to create XPath with absolute path.
Double Slash "//": Double slash is used to create XPath with the relative path.
20) What are the different types of annotations which are used in Selenium?
Test
Before
After
Ignore
⇧ SCROLL TO TOP
BeforeClass
AfterClass
RunWith
AndroidDriver
IphoneDriver
OperaMobileDriver
JAVA
PHP
Python
C#
Ruby
Perl
23) What is the difference between type keys and type commands?
TypeKeys() will trigger JavaScript event in most of the cases whereas .type() won't.
"type" command is used to type keyboard key values into the text box of software web application.
It can also be used for selecting values of combo box whereas "typeAndWait" command is used
when your typing is completed and software web page start reloading. This command will wait for
software application page to reload. If there is no page reload event on typing, you have to use a
simple "type" command.
⇧ SCROLL TO TOP
25) What is the difference between findElement() and findElements()?
findElement(): It is used to find the first element within the current page using the given "locating
mechanism". It returns a single WebElement.
findElements(): It uses the given "locating mechanism" to find all the elements within the current
page. It returns a list of web elements.
Selenium Webdriver introduces the concept of waits for the AJAX-based application. There are two
types of waits:
1. Implicit Wait
2. Explicit Wait
The main disadvantage of implicit wait is that it slows down test performance.
Suppose, you set the waiting limit to be 10 seconds, and the elements appear in the DOM in 11
seconds, your tests will be failed because you told it to wait a maximum of 10 seconds.
Selenium Grid facilitates you to distribute your tests on multiple machines and all of them at the
same time. So, you can execute tests on Internet Explorer on Windows and Safari on Mac machine
using the same text script. It reduces the time of test execution and provides quick feedback.
WebDriver driver =newFirefoxDriver();
Here, "WebDriver" is an interface, and we are creating a reference variable "driver" of type
WebDriver, instantiated using "FireFoxDriver" class.
⇧ SCROLL TO TOP
30) Write a code snippet to launch Firefox browser in WebDriver.
public class FirefoxBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting webdriver.gecko.driver property
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver + "\\geckodriver.exe");
//Instantiating driver object and launching browser
driver = newFirefoxDriver();
//Using get() method to open a webpage
driver.get("http://javatpoint.com");
//Closing the browser
driver.quit();
}
}
public class ChromeBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.chrome.driver property to its executable's location
System.setProperty("webdriver.chrome.driver", "/lib/chromeDriver/chromedriver.exe");
⇧ SCROLL
TO TOP
//Instantiating driver object
driver = newChromeDriver();
//Using get() method to open a webpage
driver.get("http://javatpoint.com");
//Closing the browser
driver.quit();
}
}
public class IEBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.ie.driver property to its executable's location
System.setProperty("webdriver.ie.driver", "/lib/IEDriverServer/IEDriverServer.exe");
//Instantiating driver object
driver = newInternetExplorerDriver();
//Using get() method to open a webpage
driver.get("http://javatpoint.com");
//Closing the browser
driver.quit();
}
}
⇧ SCROLL TO TOP
33) Write a code snippet to perform right-click an element in WebDriver.
We will use Action class to generate user event like right-click an element in WebDriver.
Actions action = newActions(driver);
WebElement element = driver.findElement(By.id("elementId"));
action.contextClick(element).perform();
Actions action = newActions(driver);
WebElement element = driver.findElement(By.id("elementId"));
action.moveToElement(element).perform();
//WebElement on which drag and drop operation needs to be performed
WebElementfromWebElement = driver.findElement(By Locator of fromWebElement);
//WebElement to which the above object is dropped
WebElementtoWebElement = driver.findElement(By Locator of toWebElement);
//Creating object of Actions class to build composite actions
Actions builder = newActions(driver);
//Building a drag and drop action
Action dragAndDrop = builder.clickAndHold(fromWebElement)
.moveToElement(toWebElement)
.release(toWebElement)
.build();
//Performing the drag and drop action
dragAndDrop.perform();
36) What are the different methods to refresh a web page in WebDriver?
⇧ SCROLL TO TOP
There are multiple ways of refreshing a page in Webdriver.
driver.navigate().refresh();
driver.get(driver.getCurrentUrl());
driver.navigate().to(driver.getCurrentUrl());
driver.findElement(By textboxLocator).sendKeys(Keys.F5);
5. Passing ascii value of the F5 key, i.e., "\uE035" using the sendKeys command -
driver.findElement(By textboxLocator).sendKeys("\uE035");
37) Write a code snippet to navigate back and forward in browser history?
driver.navigate().back();
LEARN PYTHON
5
PROGRAMMING ONLINE
Ad |
Local
⇧ SCROLL TO TOP
driver.navigate().forward();
38) How to invoke an application in WebDriver?
driver.get("url"); or
driver.navigate().to("url");
Get command is used to get the inner text of the specified web element. The get command
doesn't require any parameter, but it returns a string type value. It is also one of the widely used
commands for verification of messages, labels, and errors,etc.,from web pages.
Syntax
String Text = driver.findElement(By.id("Text")).getText();
We use the WebDriver's Select class to select the value in the dropdown.
Syntax:
selectByValue:
Select selectByValue = new Select(driver.findElement(By.id("SelectID_One")));
selectByValue.selectByValue("greenvalue");
⇧ SCROLL TO TOP
selectByVisibleText:
Select selectByVisibleText = new Select (driver.findElement(By.id("SelectID_Two")));
selectByVisibleText.selectByVisibleText("Lime");
Select selectByIndex = new Select(driver.findElement(By.id("SelectID_Three")));
selectByIndex.selectByIndex(2);
navigate().back()
The above command needs no parameters and takes back the user to the previous webpage.
Example
driver.navigate().back();
navigate().forward()
The above command allows the user to navigate to the next web page with reference to the
browser's history.
Example
driver.navigate().forward();
navigate().refresh()
The navigate().refresh() command allows the user to refresh the current web page by reloading all
the web elements.
Example
driver.navigate().refresh();
navigate().to()
The navigate().to() command allows the user to launch a new web browser window and navigate
to the specified URL.
⇧ SCROLL TO TOP
Example
driver.navigate().to("https://google.com");
An inline frame abbreviates as an iframe. It is used to insert another document within the current
document. These document can be HTML document or simply web page and nested web page.
Select iframe by id
driver.switchTo().frame("ID of the frame");
driver.switchTo().frame(driver.findElements(By.tagName("iframe").get(0));
frame(index)
driver.switchTo().frame(0);
frame(Name of Frame)
driver.switchTo().frame("name of the frame");
frame(WebElement element)
driver.switchTo().defaultContent();
To use HtmlUnit first use the RemoteWebDriver and pass it in the desired capabilities.
IWebDriver driver
= new RemoteWebDriver(DesiredCapabilities.HtmlUnit())
45) How can you redirect browsing from a browser through some proxy?
Selenium facilitates with a PROXY class to redirect browsing from a proxy. Look at the example
below.
Example
String PROXY = "199.201.125.147:8080";
org.openqa.selenium.Proxy proxy = new.org.openqa.selenium.Proxy();
proxy.setHTTPProxy(Proxy)
.setFtpProxy(Proxy)
.setSslProxy(Proxy)
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);
46) What is POM (Page Object Model)? What are its advantages?
Page Object Model is a design pattern for creating an Object directory for web UI elements. Each
web page is required to have its page class. The page class is responsible for finding the
WebElements in web pages and then perform operations on WebElements.
It facilitates with separate operations and flows in the UI from Verification - improves code
readability
Multiple tests can use the same Object Repository because the Object Repository is
independent of Test Cases.
Reusability of code
Syntax
⇧ SCROLL TO TOP
WebElement username = drv.findElement(By.id("Email"));
// entering username
username.sendKeys("sth");
WebDriver allows user to check the visibility of the web elements. These web elements can be
buttons, radio buttons, drop, checkboxes, boxes, labels etc. which are used with the following
methods.
isDisplayed()
isSelected()
isEnabled()
Syntax:
isDisplayed():
boolean buttonPresence = driver.findElement(By.id("gbqfba")).isDisplayed();
isSelected():
boolean buttonSelected = driver.findElement(By.id("gbqfba")).isSelected();
isEnabled():
boolean searchIconEnabled = driver.findElement(By.id("gbqfb")).isEnabled();
driver.findElement(By.linkText("Google")).click();
The above command search the element using a link text, then click on that element and thus the
user will be re-directed to the corresponding page.
driver.findElement(By.partialLinkText("Goo")).click();
The above-given command searches the element based on the substring of the link provided in the
parenthesis. And after that partialLinkText() finds the web element with the specified substring and
then clicks on it.
⇧ SCROLL TO TOP
Job/HR Interview Questions Database Interview Questions
⇧ SCROLL TO TOP
IOS angular deep learning
Development material tutorial tutorial
tutorial
Angular Material Deep Learning
IOS with Swift
Preparation
Company
Interview
Questions
Company Questions
Trending Technologies
⇧ SCROLL TO TOP
B.Tech / MCA
DBMS tutorial Data Structures DAA tutorial Operating
tutorial System tutorial
DBMS DAA
Data Structures Operating System
⇧ SCROLL TO TOP