SlideShare a Scribd company logo
0
1) How to handle ajaxobject/dynamic object.
Ans:we canusecontains() function
Eg. <input id=’email’type=’email’ />
Xpath : //input[contains(@id,’ema’)]
2) What is webdriverjava interface?
Ans:
Technically webdriver is a collection ofinterfaces andclass
Webdriver is a webbasedautomation testing tool, it uses api todrive the test onthebrowser
Webdriver as nativesupport’s almost allthebrowsers
3)How do you identify theobjects? In what scenarios theselocators areused?
Ans:
Id linktest
Name partiallink
Xpath tagname
Css locatorclassname
4) How to work withbutton which is indiv tag andyou haveto click withoutusing xpath.
Ans: using submit() OR using sendkeys(keys.enter)
5)How to pass keyboard operations
Ans: wb.sendkey(key.downkey)
6) How to work withweblist@radiobuttonin webdriver. Or howto work with weblist (dropdown)
Ans: we createobject ofselect class anduseobjectto select.
Eg. Webelement webele=driver.findelement(By.name(“”));
Select select =new Select(webele)
select.selectbyvisibletext(“abc”);
Thread.sleep(2000);
select.selectByvalue(“s”);
7)multiple selectlistbox
Ans: webdriverdriver=new firefoxdriver();
Driver.get(“file”);
Select sel=newSelect(driver.findelementby( “”));
Sel.selectbyvisibletext(“a”);
Sel.selectbyvisibletext(“b”);
8)How to get text from UI.
Ans:
Come to name (Independentvalue)
Sibling (which is dependent )
Then get value ofA intostring
Eg. Driver.findelement(by.linktext(“projects abd customer”)).click();
Driver.findelement(by.linktext(“aaa”).click());
String expectedCustname=driver.findelement(by.xpath(“”));
String actcustname=’a’;
SOP(actcustname.equals(expectedCustname));
9)How to handle dynamicdropdown
Ans:
Eg. WebElementwb=driver.findElement(By.name(“”));
Select selcust=new Select(wb);
List<WebElement>custlist=selcust.getOptions();
SOP(custlist.size());
String expectedVal=”abc”;
Boolean flag=false;
For (int i=0;i<=custlist.size(); i++){
String actualVal=custlist.get(i).getText();
If(expectedVal.equals(actualVal)){
SelCust.SelectByVisibleText(expectedVal);
1
Flag=true;
Break;}
If(flag)
{sop(“value not indropdown”);}}
10)How to verifiy colour oftext orimage.
Ans: <h1 class=”redtext”>GMAIL</h1>
Fetch value ofclass attribute
Driver.FindElement(locator).GetAttribute(“class”)
11)How to check which tab is enabled
Ans Use GetAttribute
12)Check howmany links presentin UI and click onlink5 suppose.
Ans: Webdriverdriver=newFirefoxDriver();
Driver.get(“ ”);
Int a =driver.findElement(By.xpath(“”));
List<WebElement>listOfLinks=driver.findElement(By.xpath(“”));
Sop(listOfLinks.size());
String expectedLink =”Switch togmail”;
Boolean flag=false;
For(int i=0;i<listOfLinks.Size();i++){
String actVal=listOfLink.get(i).getText();
If(expectedLink.equals(actVal))
{
Driver.findElement(By.linkText(ExpectedLink).click());
SOP(“link text present”);
Flag=true;
Break;
}
If (! flag)
{
SOP (“link not present”);
}
13) Difference between Implicitwaitandexplicitwait.
Ans: also fluentwait
Implicitwait Explicit wait
In Implicit wait, tell’s webdriverto poll thedom{xml,html}document
for a certain amountoftimewhentrying to find anelement.
Wait tillelementis presentin UI
Waits tillpage gets downloaded Generally webdriver waitcheckexpected conditionby every500
milliseconds ifelement found within specified amountof
time,webdriver nextstepexecution(notgoing to waitfor entire
10sec)
If page gets downloadedwithinspecifiedamount oftime, webdriver
dos not wait for specified time, itwill continuethenext step
execution.
Does not throwanyexception
Disadvantage: Ajaxapplication wait doesn’t work
Driver.manage().Timeouts().ImplicitWait(10000,TimeUnit.secounds)
/.hours/.milisecounds/.days
WebdriverWait wait=new WebDriverWait(driver,10);
Wait.Until(ExpectedCondition.elementToBeClickable(locator));
14) How to check whetherbuttonis enabled or not.
Ans: driver.findElement(By.name(Username).isEnabled();
.isSelected();
.isDisplayed();
All methods aregoing toreturnBoolean;
15) How to handlewindow popup?
Ans:
Set<String>WinList1=driver.getWindowHandles();
2
Iterator<String>it1=WinList1.iterator();
String parentWinId=it1.next();
Stirng ChildWinId=it1.next();
Driver.switchto.Window(ChildWinId);
Perform actions on child window thenpass controlback toparent window
Close current window
Driver.close();
Driver.switchto.Window(ParentWinId);
Driver.close();
Driver.quit();
When an action calls a pop upto open a new window, webdriverdoes not automatically takecontrol ofthenew popup window.Transfer
control to child window.
17) Once we click anylink automatically weget lots ofpop up.How toget the desiredone.
Ans: Will haveset ofwindow id’s. Using HasNext() iterateto allthewindowGetTitle() andcheck ifwindow titleis sameas required.
18) How to handlealert?
Ans: Alert alt =driver.SwitchTo.alert();
SOP(alt.getText());
Alt.accept();
Alt.dismiss();
19) How to countno. ofalert present in UI.
Ans: int count;
Boolean flag=true;
While(flag)
{
Try{
Alert alt=driver.SwitchTo.alert();
Count=count+1;
Alt.accept();}
Catch(no alert presentexceptione)
{Flag=true ;}
}
2)How to switch toframe?
Ans: find element byiframetag
Driver.get(“times ofindia”);
Thread.sleep(1000);
Driver.switchTo.frame(“id”);
Driver.findElement(locator).sendkeys(“10”);
21)What is the useofActions class inwebdriver? OR howto workwith keyboard and mouseoperations?
Ans: Mouse actions:(Action classes)
movetoElement();
draganddrop();
contextClick();
sendkeys();
Eg. Actions act=new Actions(driver);
Act.dragAndDrop(SourceWeb,destination).build().perform();
Actions act =new Actions(driver);
Act.sendkeys(keys.Tab,keys.Enter).build.perform();
Move to mousemoment
Actions act=new Actions(driver);
Act.moveToElement(wb).build().perform();
Driver.findElement(locator).click();
Right click operation
Action act=newActions(driver);
Act.contextclick(sourceweb).build.perform();
22)How to handle googlesearch text? OR Autosuggest/Autocompleteeditbox.
Ans: driver.get(URL“);
3
Driver.findElement(By.id(“locator”)).sendkeys(“value”);
Driver.findElement(By.xpath(“”)).click();
List<Weblist>str=driver.findElement(By.xpath(“locator”));//capture allthecoming suggestions and display the list.
For(i=0;i<=str.size()-1;i++)
{
Sop(str.get(i).getText());
}
23)How wouldyou doproxy settings using webdriver. Samoriginpolicy
Ans:
firefoxProfile profile=newFirefoxprofile();
profile.setpreferences(“network.proxy.type”,1);
profile.setpreference(“network.proxy.http”,’localhost”);
profile.setpreference(“network.proxy.http_port”,3128);
Webdriver driver=new Firefoxdriver(profile);
24)How to work withhttps websiteOR howto handleSSL certificationin Firefox
Ans:
FirefoxProfileprofile=new firefoxProfile();
FirefoxProfile.SetAssumeUntrustedCertificateIssue(false);
Driver=newFirefoxDriver(fireforxprofile);
Driver.get(“https://google.com”);
25)Delete system cookies
Ans: WebDriverdriver=new FirefoxDriver();
Driver.manage().deleteAllcookies();
26) How to work with file attachment andfiledownload inwebdriver. AutoIt
Ans:
1)if editbox is not disabled wecan attachfileusing sendkeys();
2)Use AutoIT of edit boxis disabled.
#include<IE.au3>
$oShell=ObjCreate(“Shell.application”);
$oShallWindows =$oshell.windows;
WinActive(“FileUpload”);//checkifupload window is active
$file=”filepath”;
ControlSetText(“File Upload”,”Edit”,$file);
ControlClick(“FileUpload”, “Button1”);
3)Convert .au3to .exefile
4)call .exe in eclipse
In eclipse PSVM()
{
Runtime.getRuntime().exec(pathofexefile);
}
33)File Upload using sendkeys
Ans
Public class uploadfiles
{public staticvoidmain(Stirng args[])
{
FirefoxDriverdriver=newFirefoxDriver();
Driver.get(URL);
File file=null;
Try
{
File =new File(path);
}Catch(Exception e)
{
e.printStackTrace();
}
Assert.assertTrue(file.exists());
WebElementbrowserbutton=driver.findElement(By.id(“locator”));
4
browserButton.senkeys(file.getAbsolutePath());
}
}
27)How to handle calender pop up?
28)Read data fromexcel sheet?
Ans: Apache OPIlibraries
PSVM()
{
FileinsputStreamfs=new FileInputStream(“”);
Workbook ws=WorkbookFatory.Create(fs);
Sheet sh=ws.getSheet(“sheet name”);
Int rowCount=getRowCount(“Sheet1”);
For(int i=1;i<=rowCount;i++)
{
String testCaseName=sh.getRow(i).getCell(0).getStringCelValue();
TestCaseDsc=sh.getRow(i).getCell(1).getStringCellValue();
}
}
29)Write data to Excel sheet
Ans: PSVM()
{
FileInputStreamfs=new FileInputStream();
Workbook wb=WorkbookFactory.Create(fs);
Sheet sh=wb.getSheet(“sheetname”);
Row rw=sh.getRow(1);
Cell cel=rw.createCell(6);
Cel.SetCellType(cel.Cell_TYPE_STRING);
Cel.setCellValue(“abcd”);
FileOutputStreamfos=new FileoutputStream(“”);
Fos.write(fos);
}
30)Write syntax for finding therow count indynamic webtable
Ans:
//Function
Public HasMap<String.String>getRowData(String xpathRowElement)
String row=Driver.findElement(By.xpath(xpathRowElement)).getText();
SOP(row);
String[]rowArray=row.Split(“”);//split by space
Hashmap<String,String>rowData1=new HashMap<String,String>;
rowData1.put(“Customer/projects”,rowArray[0]);
rowData1.put(“AddTask/projects”,rowArray[1]+rowArray[2]);
return rowData1;
}
//In test case
HashMap<String,String>CustomerRowData=getRowData(“xpath”);
If(CustName.equals(CustomerRowData.get(“Customer/projects”)))
{
SOP(customerrowdata)
}
String task=”0”
If(task.equals(customerRowData.get(Opentask“)))
{SOP(customerRowData(“OpenTask”));
}
31)TestNG and Advantages
Ans:
Testing is a framework usedfor core java unittesting
It does not havea UI . It’s a collection of.jar files.
TestNG does nothavea mainmethod torun a class whichuses annotations toidentify thetest.
5
testing executemultiple test cases through TestNG-XMLfileand generateaHTMLreportwithout any manual intervention.
32)TestNG annotations.
Ans;
@Test @Beforemethod
@Aftermethod @BeforeClass
@Afterclass @Beforesuite
@AfterSuite grouping using @DataProvider
Parallelexecution
TestNG method should bevoid. Does notreturnanything. One TestNG class canhave multipletest.
33)What arethedifferent arguments arepassed along with @Test annotationin TestNG?
Ans:
34)Group executionin TestNG-XLMfile
Ans:
//Suppose wehave
Public class VerifyCustomerField{
@Test(groups={“feature1”,TestCreateCustomer})
Public void verify customer()
{
SOP (“Test1”);
}
Public class CustomerandprojectTest{
@Test(groups={“feature1”,TestCustomer&Project})
Public void verify customer&Project()
{
SOP (“Test2”);
}
//TestNG-XML looks like
<Suite name=”Suite”parallel=”None”>
<test name=”Test”>
<groups>
<run>
<include name=”feature1”></include>
</run>
</groups>
//Or another example
<classes>
<class name=”VerifyCustomerField”>
<class name=”CustomerandprojectTest”>
</classes>
</test>
</suit>
35)How to include andexcludethegroups in the testing XMLfile?
Ans: <excludename=”groupname”></exclude>
36)How to achieveparallel execution inTestNG.
Ans:
<Suite name=”Suite”parallel=”tests” preserve-order=”true”>
<test name=”Test”preserve-order=”true”>
<classes>
<class name=”VerifyCustomerField”>
<class name=”CustomerandprojectTest”>
</classes>
</test>
</suit>
6
37)what are thedifferent arguments passedto testing
Ans:
@Test(dependsOnMethod={“”loginTest})
Public void testCreateCustomer()
{
SOP(“create cusotmer”);
}
@Test
Public void loginTest()
{
SOP(“login”);
}
@Test(dependsOnMethod={“”TestCreateCustomer})
Public void logout()
{
SOP(“logout”);
}
38)parallelexecution
Ans:
Test in parallel
<Suite name=”suite”parallel=”tests”preserve-order=”true”thredcount=”5”>
Method in parallel
<Suite name=”suite”parallel=”methods” preserve-order=”true” thredcount=”5”>
Classes in parallel
<Suite name=”suite”parallel=”classes”preserve-order=”true”thredcount=”5”>
45)What arethetypes ofassertions and what areassertions intesting
Ans:
Eg. If you want to failtestcases:
Public class test1
{
@Test
Public voidloginTest(){
String actualName=”abc”;
String expectedname=”ab”;
If(actualName.equals(expectedname))
{
Assert.assertTrue(true,’Test is pass’);
}
Else
{
Assert.assertTrue(false,”Test is fail”);
}
}
39)Types of assertions
Ans:
AssertTrue() AssertFalse()
AssertEquals() AssertNotEqual()
AssertSame() AssertNotSame()
AssertNull AssertNotNull
Eg: @Test
Public void login()
{
Generic lib=newgenericlib();
Try{
Assert.assertTrue(lib.login(“admin”,”password”),”Customer not matching”);
}Catch(Throwablee)
{
SOP(catch block}}
40) Most commonExceptions:
7
1) NoSuchElementException : FindBy method can’t find the element.
2) StaleElementReferenceException : This tells that element is no longer appearing on the DOM page.
3) TimeoutException: This tells that the execution is failed because the command did not complete in enough time.
4) ElementNotVisibleException: Throw n to indicate that although an element is present on the DOM, it is not visible, and so is not
able to be interacted w ith
5) ElementNotSelectableException: Throw n to indicate that may be the element is disabled, and so is not able to select.
41)How to takescreenshots?
Ans:
Psvm(String[]args)
{
WebDriver driver=new FireFoxWebDriver();
Driver.get(weblink);
EventFiringWebDriver edriver=new EventFirinfWebDriver();
File srcImg=edriver.getScreenShotAs(OutputType.FILE);
File destImg=newFile(file location);
FileUtils.copyFilesToDirectory(srcImg,desImg);
}
42)Differenceget() and navigate().to();
43)How to do data parameterization? What is data provider?
Ans: To do a parameterization
Running sametestscript withmultiple data
Test data from excelsheet,or xml sheet.
Eg.
Public class testNgDataProvider{
@Test(dataProvider=”getData”)
Public void checkAccountStatusTest(String accname,String Psw)
{
SOP(accname);
SOP(Psw);
}
}
@DataProvider
Public Object[][]getData()
{
Object[][]data=new Object[5][2];
Data[0][0]=”Act1”;
Data[0][1]=”Pass1”;
Return data;}
51)What is selenium grid
As: Want to runtestscripts on differentmachines, different browsers acts like remotecontrol.
Eg.
Public class selenium grid{
PSVM(String[]args)
{
DesiredCapabilities capability =DesiredCapabilities.firefox();
String URL=URL;
URL ClientURL=new URL(URL);
RemoteWebDriver driver=new RemoteWebDriver(ClientURL,Capability);
}
}
Q parameteriation
Q Xpath Axis
AxisName Result
ancestor Selects all ancestors (parent,grandparent, etc.) of thecurrent node
ancestor-or-self
Selects all ancestors (parent,grandparent, etc.)of thecurrent node andthecurrent node
itself
attribute Selects all attributes of the current node
child Selects all children of thecurrent node
8
descendant Selects all descendants (children, grandchildren,etc.) ofthe current node
descendant-or-self
Selects all descendants (children, grandchildren,etc.) ofthe current node andthe current
node itself
following Selects everythingin the document afterthe closingtagof thecurrent node
following-sibling Selects all siblings after thecurrent node
namespace Selects all namespace nodes of the current node
parent Selects the parent of the current node
preceding
Selects all nodes that appear before the current node in the document, except ancestors,
attribute nodes andnamespace nodes
preceding-sibling Selects all siblings before the current node
self Selects the current node
child::book
attribute::lang
child::*
attribute::*
child::text()
child::node()
descendant::book
ancestor::book
ancestor-or-
self::book
child::*/child::price
44.Whatis thedifferencebetween absolute path and relativepathwhileusing xpath?
OR What is thedifference between / and // in xpath
Absolute path ( / )will give completeaddress oftheelement whereas relativepath (//) willmatchthenext immediatechild.
45.How to handleupload popups using Selenium?
We could inspect the browsebutton, so weuse sendkeys method todirectly inputthefilelocation for uploading thefile.
46.How to handledownload popups using Selenium?
47.Selenium does not handlewindows outofbrowser sowe need tousethirdparty tools likeAutoITto handledownload popups.
Differencebetween quit() and close()?
Close() closes thebrowserwindowwhich is infocus whereas quit() shuts down theWebDrivers instancemeaning itwill closeall browser
window opened by selenium automation.
48.How to prioritize tests?
We need to usethe‘priority‘parameter,ifyou wantthemethods to beexecutedin order.
OOPs in selenium:
1) ABSTRACTION
In Page Object Model design pattern,we write locators (such as id, name, xpathetc.,)in a Page Class. We utilize these locators in tests but we
can’t see these locators in thetests. Literallywe hide the locators from thetests.
Abstraction is themethodologyof hidingtheimplementationof internal details andshowingthe functionalitytothe users.
2) INTERFACE
Basic statementwe allknow in Seleniumis WebDriver driver =newFirefoxDriver();
WebDriver itselfis an Interface. So basedon the above statement WebDriver driver =new FirefoxDriver(); weareinitializing Firefox browser
using SeleniumWebDriver. Itmeans we arecreating a referencevariable(driver) ofthe interface(WebDriver) and creating anObject. Here
WebDriver is anInterface as mentionedearlier and FirefoxDriver is a class.
3) INHERITANCE
We create a BaseClass in theFramework to initializeWebDriver interface, WebDriver waits, Propertyfiles,Excels, etc., intheBaseClass.
We extendtheBaseClass inother classes suchas Tests and Utility Class. Extending oneclass into other class is known as Inheritance.
4)polymorphism: METHOD OVERLOADING
We use implicit wait inSelenium. Implicitwait is anexampleofoverloading. InImplicit waitweusedifferenttime stamps such as SECONDS,
MINUTES, HOURS etc.,
5) polymorphism: METHOD OVERRIDING
We use a methodwhich was already implementedin another class bychanging its parameters. To understand this, you need tounderstand
Overriding inJava.
Declaring a method inchildclass whichis already present intheparent class is calledMethodOverriding. Examples areget andnavigate
methods of differentdrivers in Selenium.
9
6) ENCAPSULATION
All the classes in a frameworkareanexampleofEncapsulation. InPOMclasses,we declarethedata members using @FindBy andinitialization
of data members will bedone using Constructor toutilize thosein methods.
Encapsulation is a mechanismofbinding codeand data together ina singleunit.
49.. How to takescreenshotusing listeners
public class TestListenerimplements ITestListener{
privateWebDriver driver;
public void onTestFailure(ITestResultresult) {
// since youneed the driver inyourscreenshotmethod do this:
this.driver=((TestBaseClass)result.getInstance()).driver;
// here comes your screenshot method
// ...
}
public void onTestStart(ITestResult result) {
}
public void onTestSuccess(ITestResult result) {
}
public void onTestSkipped(ITestResultresult) {
}
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
}
public void onStart(ITestContext context) {
}
public void onFinish(ITestContext context) {
}
}
Then in your xmlfilejust addthetestlistener:
<suite name="allSuites">
<suite-files>
<suite-filepath="yourtestsuite01.xml"/>
<suite-filepath="yourtestsuite02.xml"/>
</suite-files>
<listeners>
<listener class-name="drkthng.comparex.TestListener"/>
</listeners>
</suite>
Case 1: Execute failed test casesusing TestNG in Selenium–By using “testng-failed.xml”
Steps
1-If your test cases are failingthenonce all test suite completed then youhave to refresh yourproject . Rightclickon project>Clickon refresh or
Select projectandpress f5.
2-Check test-output folder, atlast, you willget testng-failed.xml
3-Now simply runtestng-failed.xml.
Case 2: Execute failed test casesusing TestNG in Selenium–By Implementing TestNG IRetryAnalyzer.
RetryFailedTestCasesimplementsIRetryAnalyzer:
Create separate Classwhich will implement IRetryAnalyerinterface
package TestNGDemo;
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
// implement IRetryAnalyzer interface
public class Retry implements IRetryAnalyzer{
10
// set counter to 0
int minretryCount=0;
// set maxcountervaluethis will executeour test 3 times
int maxretryCount=2;
// overrideretry Method
public boolean retry(ITestResult result) {
// this willrun until maxcount completes iftestpass within this frameit willcomeout offor loop
if(minretryCount<=maxretryCount)
{
// print the testnamefor log purpose
System.out.println("Following test is failing===="+result.getName());
// print the counter value
System.out.println("Retrying thetest Countis==="+(minretryCount+1));
// incrementcounter each timeby 1
minretryCount++;
return true;
}
return false;}}
Now we are done almostonlywe need to specify this in the test case
@Test(retryAnalyzer=Retry.class)
Program to Rerun failedtestcases in selenium
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class VerifyTitle
{
// Here we haveto specify theclass –In our caseclass nameis Retry
@Test(retryAnalyzer=Retry.class)
public void verifySeleniumTitle()
{
WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://www.learn-automation.com");
11
// Here we are verifying that titlecontains QTP or not. This testwill failbecause titledoes not contain QTP
Assert.assertTrue(driver.getTitle().contains("QTP"));
Q50:
@How to find if imageis attherightsideofwebpage
1)WebElement ImageFile=driver.findElement(By.xpath("//img[contains(@id,'TestImage')]"));
2) Boolean ImagePresent =(Boolean) ((JavascriptExecutor)driver).executeScript("returnarguments[0].complete&&typeof
arguments[0].naturalWidth!= "undefined"&&arguments[0].naturalWidth >0", ImageFile);
Q51:Assertion
Q:
Q52:What isListenersin Selenium WebDriver?
Listener is definedas interfacethatmodifies thedefault TestNG's behavior. As thenamesuggests Listeners "listen"to theeventdefined inthe
seleniumscript and behave accordingly.It is usedin seleniumby implementing Listeners Interface. Itallows customizing TestNG reports or logs.
There are many types ofTestNG listeners available.
IReporter, reporting
ITestListener,takescreenshot
IRetryAnalyzerretry failed test case running
i)Listenerclass
public class ListenerTest implements ITestListener
{
@Override
public void onFinish(ITestContext Result)
{
}
ii)In main class
@Listeners(Listener_Demo.ListenerTest.class)
In XML file include
<listeners>
<listener class-name=listenerclass>
</listeners>
Listeners are requiredtogenerate logs or customize TestNGreports in Selenium Webdriver.
There are manytypes of listeners andcanbe usedas per requirements.
Listeners are interfaces usedin selenium webdriver script
Demonstratedthe use of Listener in Selenium
Implementedthe Listeners for multiple classes

More Related Content

PPT
Java. Explicit and Implicit Wait. Testing Ajax Applications
PPT
Learning Java 4 – Swing, SQL, and Security API
PDF
BDD, ATDD, Page Objects: The Road to Sustainable Web Testing
PDF
Fun Teaching MongoDB New Tricks
PDF
WebDriver Waits
PDF
Implicit and Explicit waits in Selenium WebDriwer, how to.
PDF
Using Groovy with Jenkins
PDF
Automation puzzlers
Java. Explicit and Implicit Wait. Testing Ajax Applications
Learning Java 4 – Swing, SQL, and Security API
BDD, ATDD, Page Objects: The Road to Sustainable Web Testing
Fun Teaching MongoDB New Tricks
WebDriver Waits
Implicit and Explicit waits in Selenium WebDriwer, how to.
Using Groovy with Jenkins
Automation puzzlers

What's hot (20)

PPTX
An introduction to Vue.js
PDF
JJUG CCC 2011 Spring
PDF
Tomcat连接池配置方法V2.1
PDF
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
PPTX
How to execute Automation Testing using Selenium
PDF
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
PDF
JavaFest. Nanne Baars. Web application security for developers
PDF
Java libraries you can't afford to miss
PDF
async/await in Swift
PDF
Android Concurrency Presentation
PDF
What the FUF?
PPTX
Demystifying dependency Injection: Dagger and Toothpick
ODP
Introduce about Nodejs - duyetdev.com
PDF
Basic Tutorial of React for Programmers
PPT
Wicket Security Presentation
PDF
The report of JavaOne2011 about groovy
PPTX
Test driven development (java script & mivascript)
PDF
Activator and Reactive at Play NYC meetup
PDF
Introduction to Meteor at ChaDev Lunch
PDF
Appsec usa2013 js_libinsecurity_stefanodipaola
An introduction to Vue.js
JJUG CCC 2011 Spring
Tomcat连接池配置方法V2.1
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
How to execute Automation Testing using Selenium
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
JavaFest. Nanne Baars. Web application security for developers
Java libraries you can't afford to miss
async/await in Swift
Android Concurrency Presentation
What the FUF?
Demystifying dependency Injection: Dagger and Toothpick
Introduce about Nodejs - duyetdev.com
Basic Tutorial of React for Programmers
Wicket Security Presentation
The report of JavaOne2011 about groovy
Test driven development (java script & mivascript)
Activator and Reactive at Play NYC meetup
Introduction to Meteor at ChaDev Lunch
Appsec usa2013 js_libinsecurity_stefanodipaola
Ad

Similar to Experienced Selenium Interview questions (20)

PDF
Selenium interview questions and answers
PPTX
Web driver training
PDF
Latest Selenium Interview Questions And Answers.pdf
PDF
Web UI test automation instruments
PDF
Complete_QA_Automation_Guide__1696637878.pdf
PPTX
Das kannste schon so machen
PDF
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
PPTX
Protractor framework architecture with example
PDF
Node.js and Selenium Webdriver, a journey from the Java side
PPTX
Testing Ext JS and Sencha Touch
PDF
Servlets
PPTX
Servlets
PPT
Sanjeev ghai 12
PPTX
How to perform debounce in react
PPTX
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
PDF
soft-shake.ch - Hands on Node.js
DOCX
Selenium WebDriver FAQ's
PDF
Top100summit 谷歌-scott-improve your automated web application testing
PDF
3 Mobile App Dev Problems - Monospace
PDF
Web ui testing
Selenium interview questions and answers
Web driver training
Latest Selenium Interview Questions And Answers.pdf
Web UI test automation instruments
Complete_QA_Automation_Guide__1696637878.pdf
Das kannste schon so machen
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
Protractor framework architecture with example
Node.js and Selenium Webdriver, a journey from the Java side
Testing Ext JS and Sencha Touch
Servlets
Servlets
Sanjeev ghai 12
How to perform debounce in react
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
soft-shake.ch - Hands on Node.js
Selenium WebDriver FAQ's
Top100summit 谷歌-scott-improve your automated web application testing
3 Mobile App Dev Problems - Monospace
Web ui testing
Ad

Recently uploaded (20)

PDF
System and Network Administration Chapter 2
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
System and Network Administraation Chapter 3
PDF
Digital Strategies for Manufacturing Companies
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Introduction to Artificial Intelligence
PPTX
L1 - Introduction to python Backend.pptx
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
VVF-Customer-Presentation2025-Ver1.9.pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
System and Network Administraation Chapter 3
Digital Strategies for Manufacturing Companies
Odoo Companies in India – Driving Business Transformation.pdf
PTS Company Brochure 2025 (1).pdf.......
Upgrade and Innovation Strategies for SAP ERP Customers
Reimagine Home Health with the Power of Agentic AI​
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Navsoft: AI-Powered Business Solutions & Custom Software Development
Introduction to Artificial Intelligence
L1 - Introduction to python Backend.pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Softaken Excel to vCard Converter Software.pdf
Understanding Forklifts - TECH EHS Solution
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Essential Infomation Tech presentation.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How to Choose the Right IT Partner for Your Business in Malaysia

Experienced Selenium Interview questions

  • 1. 0 1) How to handle ajaxobject/dynamic object. Ans:we canusecontains() function Eg. <input id=’email’type=’email’ /> Xpath : //input[contains(@id,’ema’)] 2) What is webdriverjava interface? Ans: Technically webdriver is a collection ofinterfaces andclass Webdriver is a webbasedautomation testing tool, it uses api todrive the test onthebrowser Webdriver as nativesupport’s almost allthebrowsers 3)How do you identify theobjects? In what scenarios theselocators areused? Ans: Id linktest Name partiallink Xpath tagname Css locatorclassname 4) How to work withbutton which is indiv tag andyou haveto click withoutusing xpath. Ans: using submit() OR using sendkeys(keys.enter) 5)How to pass keyboard operations Ans: wb.sendkey(key.downkey) 6) How to work withweblist@radiobuttonin webdriver. Or howto work with weblist (dropdown) Ans: we createobject ofselect class anduseobjectto select. Eg. Webelement webele=driver.findelement(By.name(“”)); Select select =new Select(webele) select.selectbyvisibletext(“abc”); Thread.sleep(2000); select.selectByvalue(“s”); 7)multiple selectlistbox Ans: webdriverdriver=new firefoxdriver(); Driver.get(“file”); Select sel=newSelect(driver.findelementby( “”)); Sel.selectbyvisibletext(“a”); Sel.selectbyvisibletext(“b”); 8)How to get text from UI. Ans: Come to name (Independentvalue) Sibling (which is dependent ) Then get value ofA intostring Eg. Driver.findelement(by.linktext(“projects abd customer”)).click(); Driver.findelement(by.linktext(“aaa”).click()); String expectedCustname=driver.findelement(by.xpath(“”)); String actcustname=’a’; SOP(actcustname.equals(expectedCustname)); 9)How to handle dynamicdropdown Ans: Eg. WebElementwb=driver.findElement(By.name(“”)); Select selcust=new Select(wb); List<WebElement>custlist=selcust.getOptions(); SOP(custlist.size()); String expectedVal=”abc”; Boolean flag=false; For (int i=0;i<=custlist.size(); i++){ String actualVal=custlist.get(i).getText(); If(expectedVal.equals(actualVal)){ SelCust.SelectByVisibleText(expectedVal);
  • 2. 1 Flag=true; Break;} If(flag) {sop(“value not indropdown”);}} 10)How to verifiy colour oftext orimage. Ans: <h1 class=”redtext”>GMAIL</h1> Fetch value ofclass attribute Driver.FindElement(locator).GetAttribute(“class”) 11)How to check which tab is enabled Ans Use GetAttribute 12)Check howmany links presentin UI and click onlink5 suppose. Ans: Webdriverdriver=newFirefoxDriver(); Driver.get(“ ”); Int a =driver.findElement(By.xpath(“”)); List<WebElement>listOfLinks=driver.findElement(By.xpath(“”)); Sop(listOfLinks.size()); String expectedLink =”Switch togmail”; Boolean flag=false; For(int i=0;i<listOfLinks.Size();i++){ String actVal=listOfLink.get(i).getText(); If(expectedLink.equals(actVal)) { Driver.findElement(By.linkText(ExpectedLink).click()); SOP(“link text present”); Flag=true; Break; } If (! flag) { SOP (“link not present”); } 13) Difference between Implicitwaitandexplicitwait. Ans: also fluentwait Implicitwait Explicit wait In Implicit wait, tell’s webdriverto poll thedom{xml,html}document for a certain amountoftimewhentrying to find anelement. Wait tillelementis presentin UI Waits tillpage gets downloaded Generally webdriver waitcheckexpected conditionby every500 milliseconds ifelement found within specified amountof time,webdriver nextstepexecution(notgoing to waitfor entire 10sec) If page gets downloadedwithinspecifiedamount oftime, webdriver dos not wait for specified time, itwill continuethenext step execution. Does not throwanyexception Disadvantage: Ajaxapplication wait doesn’t work Driver.manage().Timeouts().ImplicitWait(10000,TimeUnit.secounds) /.hours/.milisecounds/.days WebdriverWait wait=new WebDriverWait(driver,10); Wait.Until(ExpectedCondition.elementToBeClickable(locator)); 14) How to check whetherbuttonis enabled or not. Ans: driver.findElement(By.name(Username).isEnabled(); .isSelected(); .isDisplayed(); All methods aregoing toreturnBoolean; 15) How to handlewindow popup? Ans: Set<String>WinList1=driver.getWindowHandles();
  • 3. 2 Iterator<String>it1=WinList1.iterator(); String parentWinId=it1.next(); Stirng ChildWinId=it1.next(); Driver.switchto.Window(ChildWinId); Perform actions on child window thenpass controlback toparent window Close current window Driver.close(); Driver.switchto.Window(ParentWinId); Driver.close(); Driver.quit(); When an action calls a pop upto open a new window, webdriverdoes not automatically takecontrol ofthenew popup window.Transfer control to child window. 17) Once we click anylink automatically weget lots ofpop up.How toget the desiredone. Ans: Will haveset ofwindow id’s. Using HasNext() iterateto allthewindowGetTitle() andcheck ifwindow titleis sameas required. 18) How to handlealert? Ans: Alert alt =driver.SwitchTo.alert(); SOP(alt.getText()); Alt.accept(); Alt.dismiss(); 19) How to countno. ofalert present in UI. Ans: int count; Boolean flag=true; While(flag) { Try{ Alert alt=driver.SwitchTo.alert(); Count=count+1; Alt.accept();} Catch(no alert presentexceptione) {Flag=true ;} } 2)How to switch toframe? Ans: find element byiframetag Driver.get(“times ofindia”); Thread.sleep(1000); Driver.switchTo.frame(“id”); Driver.findElement(locator).sendkeys(“10”); 21)What is the useofActions class inwebdriver? OR howto workwith keyboard and mouseoperations? Ans: Mouse actions:(Action classes) movetoElement(); draganddrop(); contextClick(); sendkeys(); Eg. Actions act=new Actions(driver); Act.dragAndDrop(SourceWeb,destination).build().perform(); Actions act =new Actions(driver); Act.sendkeys(keys.Tab,keys.Enter).build.perform(); Move to mousemoment Actions act=new Actions(driver); Act.moveToElement(wb).build().perform(); Driver.findElement(locator).click(); Right click operation Action act=newActions(driver); Act.contextclick(sourceweb).build.perform(); 22)How to handle googlesearch text? OR Autosuggest/Autocompleteeditbox. Ans: driver.get(URL“);
  • 4. 3 Driver.findElement(By.id(“locator”)).sendkeys(“value”); Driver.findElement(By.xpath(“”)).click(); List<Weblist>str=driver.findElement(By.xpath(“locator”));//capture allthecoming suggestions and display the list. For(i=0;i<=str.size()-1;i++) { Sop(str.get(i).getText()); } 23)How wouldyou doproxy settings using webdriver. Samoriginpolicy Ans: firefoxProfile profile=newFirefoxprofile(); profile.setpreferences(“network.proxy.type”,1); profile.setpreference(“network.proxy.http”,’localhost”); profile.setpreference(“network.proxy.http_port”,3128); Webdriver driver=new Firefoxdriver(profile); 24)How to work withhttps websiteOR howto handleSSL certificationin Firefox Ans: FirefoxProfileprofile=new firefoxProfile(); FirefoxProfile.SetAssumeUntrustedCertificateIssue(false); Driver=newFirefoxDriver(fireforxprofile); Driver.get(“https://google.com”); 25)Delete system cookies Ans: WebDriverdriver=new FirefoxDriver(); Driver.manage().deleteAllcookies(); 26) How to work with file attachment andfiledownload inwebdriver. AutoIt Ans: 1)if editbox is not disabled wecan attachfileusing sendkeys(); 2)Use AutoIT of edit boxis disabled. #include<IE.au3> $oShell=ObjCreate(“Shell.application”); $oShallWindows =$oshell.windows; WinActive(“FileUpload”);//checkifupload window is active $file=”filepath”; ControlSetText(“File Upload”,”Edit”,$file); ControlClick(“FileUpload”, “Button1”); 3)Convert .au3to .exefile 4)call .exe in eclipse In eclipse PSVM() { Runtime.getRuntime().exec(pathofexefile); } 33)File Upload using sendkeys Ans Public class uploadfiles {public staticvoidmain(Stirng args[]) { FirefoxDriverdriver=newFirefoxDriver(); Driver.get(URL); File file=null; Try { File =new File(path); }Catch(Exception e) { e.printStackTrace(); } Assert.assertTrue(file.exists()); WebElementbrowserbutton=driver.findElement(By.id(“locator”));
  • 5. 4 browserButton.senkeys(file.getAbsolutePath()); } } 27)How to handle calender pop up? 28)Read data fromexcel sheet? Ans: Apache OPIlibraries PSVM() { FileinsputStreamfs=new FileInputStream(“”); Workbook ws=WorkbookFatory.Create(fs); Sheet sh=ws.getSheet(“sheet name”); Int rowCount=getRowCount(“Sheet1”); For(int i=1;i<=rowCount;i++) { String testCaseName=sh.getRow(i).getCell(0).getStringCelValue(); TestCaseDsc=sh.getRow(i).getCell(1).getStringCellValue(); } } 29)Write data to Excel sheet Ans: PSVM() { FileInputStreamfs=new FileInputStream(); Workbook wb=WorkbookFactory.Create(fs); Sheet sh=wb.getSheet(“sheetname”); Row rw=sh.getRow(1); Cell cel=rw.createCell(6); Cel.SetCellType(cel.Cell_TYPE_STRING); Cel.setCellValue(“abcd”); FileOutputStreamfos=new FileoutputStream(“”); Fos.write(fos); } 30)Write syntax for finding therow count indynamic webtable Ans: //Function Public HasMap<String.String>getRowData(String xpathRowElement) String row=Driver.findElement(By.xpath(xpathRowElement)).getText(); SOP(row); String[]rowArray=row.Split(“”);//split by space Hashmap<String,String>rowData1=new HashMap<String,String>; rowData1.put(“Customer/projects”,rowArray[0]); rowData1.put(“AddTask/projects”,rowArray[1]+rowArray[2]); return rowData1; } //In test case HashMap<String,String>CustomerRowData=getRowData(“xpath”); If(CustName.equals(CustomerRowData.get(“Customer/projects”))) { SOP(customerrowdata) } String task=”0” If(task.equals(customerRowData.get(Opentask“))) {SOP(customerRowData(“OpenTask”)); } 31)TestNG and Advantages Ans: Testing is a framework usedfor core java unittesting It does not havea UI . It’s a collection of.jar files. TestNG does nothavea mainmethod torun a class whichuses annotations toidentify thetest.
  • 6. 5 testing executemultiple test cases through TestNG-XMLfileand generateaHTMLreportwithout any manual intervention. 32)TestNG annotations. Ans; @Test @Beforemethod @Aftermethod @BeforeClass @Afterclass @Beforesuite @AfterSuite grouping using @DataProvider Parallelexecution TestNG method should bevoid. Does notreturnanything. One TestNG class canhave multipletest. 33)What arethedifferent arguments arepassed along with @Test annotationin TestNG? Ans: 34)Group executionin TestNG-XLMfile Ans: //Suppose wehave Public class VerifyCustomerField{ @Test(groups={“feature1”,TestCreateCustomer}) Public void verify customer() { SOP (“Test1”); } Public class CustomerandprojectTest{ @Test(groups={“feature1”,TestCustomer&Project}) Public void verify customer&Project() { SOP (“Test2”); } //TestNG-XML looks like <Suite name=”Suite”parallel=”None”> <test name=”Test”> <groups> <run> <include name=”feature1”></include> </run> </groups> //Or another example <classes> <class name=”VerifyCustomerField”> <class name=”CustomerandprojectTest”> </classes> </test> </suit> 35)How to include andexcludethegroups in the testing XMLfile? Ans: <excludename=”groupname”></exclude> 36)How to achieveparallel execution inTestNG. Ans: <Suite name=”Suite”parallel=”tests” preserve-order=”true”> <test name=”Test”preserve-order=”true”> <classes> <class name=”VerifyCustomerField”> <class name=”CustomerandprojectTest”> </classes> </test> </suit>
  • 7. 6 37)what are thedifferent arguments passedto testing Ans: @Test(dependsOnMethod={“”loginTest}) Public void testCreateCustomer() { SOP(“create cusotmer”); } @Test Public void loginTest() { SOP(“login”); } @Test(dependsOnMethod={“”TestCreateCustomer}) Public void logout() { SOP(“logout”); } 38)parallelexecution Ans: Test in parallel <Suite name=”suite”parallel=”tests”preserve-order=”true”thredcount=”5”> Method in parallel <Suite name=”suite”parallel=”methods” preserve-order=”true” thredcount=”5”> Classes in parallel <Suite name=”suite”parallel=”classes”preserve-order=”true”thredcount=”5”> 45)What arethetypes ofassertions and what areassertions intesting Ans: Eg. If you want to failtestcases: Public class test1 { @Test Public voidloginTest(){ String actualName=”abc”; String expectedname=”ab”; If(actualName.equals(expectedname)) { Assert.assertTrue(true,’Test is pass’); } Else { Assert.assertTrue(false,”Test is fail”); } } 39)Types of assertions Ans: AssertTrue() AssertFalse() AssertEquals() AssertNotEqual() AssertSame() AssertNotSame() AssertNull AssertNotNull Eg: @Test Public void login() { Generic lib=newgenericlib(); Try{ Assert.assertTrue(lib.login(“admin”,”password”),”Customer not matching”); }Catch(Throwablee) { SOP(catch block}} 40) Most commonExceptions:
  • 8. 7 1) NoSuchElementException : FindBy method can’t find the element. 2) StaleElementReferenceException : This tells that element is no longer appearing on the DOM page. 3) TimeoutException: This tells that the execution is failed because the command did not complete in enough time. 4) ElementNotVisibleException: Throw n to indicate that although an element is present on the DOM, it is not visible, and so is not able to be interacted w ith 5) ElementNotSelectableException: Throw n to indicate that may be the element is disabled, and so is not able to select. 41)How to takescreenshots? Ans: Psvm(String[]args) { WebDriver driver=new FireFoxWebDriver(); Driver.get(weblink); EventFiringWebDriver edriver=new EventFirinfWebDriver(); File srcImg=edriver.getScreenShotAs(OutputType.FILE); File destImg=newFile(file location); FileUtils.copyFilesToDirectory(srcImg,desImg); } 42)Differenceget() and navigate().to(); 43)How to do data parameterization? What is data provider? Ans: To do a parameterization Running sametestscript withmultiple data Test data from excelsheet,or xml sheet. Eg. Public class testNgDataProvider{ @Test(dataProvider=”getData”) Public void checkAccountStatusTest(String accname,String Psw) { SOP(accname); SOP(Psw); } } @DataProvider Public Object[][]getData() { Object[][]data=new Object[5][2]; Data[0][0]=”Act1”; Data[0][1]=”Pass1”; Return data;} 51)What is selenium grid As: Want to runtestscripts on differentmachines, different browsers acts like remotecontrol. Eg. Public class selenium grid{ PSVM(String[]args) { DesiredCapabilities capability =DesiredCapabilities.firefox(); String URL=URL; URL ClientURL=new URL(URL); RemoteWebDriver driver=new RemoteWebDriver(ClientURL,Capability); } } Q parameteriation Q Xpath Axis AxisName Result ancestor Selects all ancestors (parent,grandparent, etc.) of thecurrent node ancestor-or-self Selects all ancestors (parent,grandparent, etc.)of thecurrent node andthecurrent node itself attribute Selects all attributes of the current node child Selects all children of thecurrent node
  • 9. 8 descendant Selects all descendants (children, grandchildren,etc.) ofthe current node descendant-or-self Selects all descendants (children, grandchildren,etc.) ofthe current node andthe current node itself following Selects everythingin the document afterthe closingtagof thecurrent node following-sibling Selects all siblings after thecurrent node namespace Selects all namespace nodes of the current node parent Selects the parent of the current node preceding Selects all nodes that appear before the current node in the document, except ancestors, attribute nodes andnamespace nodes preceding-sibling Selects all siblings before the current node self Selects the current node child::book attribute::lang child::* attribute::* child::text() child::node() descendant::book ancestor::book ancestor-or- self::book child::*/child::price 44.Whatis thedifferencebetween absolute path and relativepathwhileusing xpath? OR What is thedifference between / and // in xpath Absolute path ( / )will give completeaddress oftheelement whereas relativepath (//) willmatchthenext immediatechild. 45.How to handleupload popups using Selenium? We could inspect the browsebutton, so weuse sendkeys method todirectly inputthefilelocation for uploading thefile. 46.How to handledownload popups using Selenium? 47.Selenium does not handlewindows outofbrowser sowe need tousethirdparty tools likeAutoITto handledownload popups. Differencebetween quit() and close()? Close() closes thebrowserwindowwhich is infocus whereas quit() shuts down theWebDrivers instancemeaning itwill closeall browser window opened by selenium automation. 48.How to prioritize tests? We need to usethe‘priority‘parameter,ifyou wantthemethods to beexecutedin order. OOPs in selenium: 1) ABSTRACTION In Page Object Model design pattern,we write locators (such as id, name, xpathetc.,)in a Page Class. We utilize these locators in tests but we can’t see these locators in thetests. Literallywe hide the locators from thetests. Abstraction is themethodologyof hidingtheimplementationof internal details andshowingthe functionalitytothe users. 2) INTERFACE Basic statementwe allknow in Seleniumis WebDriver driver =newFirefoxDriver(); WebDriver itselfis an Interface. So basedon the above statement WebDriver driver =new FirefoxDriver(); weareinitializing Firefox browser using SeleniumWebDriver. Itmeans we arecreating a referencevariable(driver) ofthe interface(WebDriver) and creating anObject. Here WebDriver is anInterface as mentionedearlier and FirefoxDriver is a class. 3) INHERITANCE We create a BaseClass in theFramework to initializeWebDriver interface, WebDriver waits, Propertyfiles,Excels, etc., intheBaseClass. We extendtheBaseClass inother classes suchas Tests and Utility Class. Extending oneclass into other class is known as Inheritance. 4)polymorphism: METHOD OVERLOADING We use implicit wait inSelenium. Implicitwait is anexampleofoverloading. InImplicit waitweusedifferenttime stamps such as SECONDS, MINUTES, HOURS etc., 5) polymorphism: METHOD OVERRIDING We use a methodwhich was already implementedin another class bychanging its parameters. To understand this, you need tounderstand Overriding inJava. Declaring a method inchildclass whichis already present intheparent class is calledMethodOverriding. Examples areget andnavigate methods of differentdrivers in Selenium.
  • 10. 9 6) ENCAPSULATION All the classes in a frameworkareanexampleofEncapsulation. InPOMclasses,we declarethedata members using @FindBy andinitialization of data members will bedone using Constructor toutilize thosein methods. Encapsulation is a mechanismofbinding codeand data together ina singleunit. 49.. How to takescreenshotusing listeners public class TestListenerimplements ITestListener{ privateWebDriver driver; public void onTestFailure(ITestResultresult) { // since youneed the driver inyourscreenshotmethod do this: this.driver=((TestBaseClass)result.getInstance()).driver; // here comes your screenshot method // ... } public void onTestStart(ITestResult result) { } public void onTestSuccess(ITestResult result) { } public void onTestSkipped(ITestResultresult) { } public void onTestFailedButWithinSuccessPercentage(ITestResult result) { } public void onStart(ITestContext context) { } public void onFinish(ITestContext context) { } } Then in your xmlfilejust addthetestlistener: <suite name="allSuites"> <suite-files> <suite-filepath="yourtestsuite01.xml"/> <suite-filepath="yourtestsuite02.xml"/> </suite-files> <listeners> <listener class-name="drkthng.comparex.TestListener"/> </listeners> </suite> Case 1: Execute failed test casesusing TestNG in Selenium–By using “testng-failed.xml” Steps 1-If your test cases are failingthenonce all test suite completed then youhave to refresh yourproject . Rightclickon project>Clickon refresh or Select projectandpress f5. 2-Check test-output folder, atlast, you willget testng-failed.xml 3-Now simply runtestng-failed.xml. Case 2: Execute failed test casesusing TestNG in Selenium–By Implementing TestNG IRetryAnalyzer. RetryFailedTestCasesimplementsIRetryAnalyzer: Create separate Classwhich will implement IRetryAnalyerinterface package TestNGDemo; import org.testng.IRetryAnalyzer; import org.testng.ITestResult; // implement IRetryAnalyzer interface public class Retry implements IRetryAnalyzer{
  • 11. 10 // set counter to 0 int minretryCount=0; // set maxcountervaluethis will executeour test 3 times int maxretryCount=2; // overrideretry Method public boolean retry(ITestResult result) { // this willrun until maxcount completes iftestpass within this frameit willcomeout offor loop if(minretryCount<=maxretryCount) { // print the testnamefor log purpose System.out.println("Following test is failing===="+result.getName()); // print the counter value System.out.println("Retrying thetest Countis==="+(minretryCount+1)); // incrementcounter each timeby 1 minretryCount++; return true; } return false;}} Now we are done almostonlywe need to specify this in the test case @Test(retryAnalyzer=Retry.class) Program to Rerun failedtestcases in selenium import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class VerifyTitle { // Here we haveto specify theclass –In our caseclass nameis Retry @Test(retryAnalyzer=Retry.class) public void verifySeleniumTitle() { WebDriver driver=new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://www.learn-automation.com");
  • 12. 11 // Here we are verifying that titlecontains QTP or not. This testwill failbecause titledoes not contain QTP Assert.assertTrue(driver.getTitle().contains("QTP")); Q50: @How to find if imageis attherightsideofwebpage 1)WebElement ImageFile=driver.findElement(By.xpath("//img[contains(@id,'TestImage')]")); 2) Boolean ImagePresent =(Boolean) ((JavascriptExecutor)driver).executeScript("returnarguments[0].complete&&typeof arguments[0].naturalWidth!= "undefined"&&arguments[0].naturalWidth >0", ImageFile); Q51:Assertion Q: Q52:What isListenersin Selenium WebDriver? Listener is definedas interfacethatmodifies thedefault TestNG's behavior. As thenamesuggests Listeners "listen"to theeventdefined inthe seleniumscript and behave accordingly.It is usedin seleniumby implementing Listeners Interface. Itallows customizing TestNG reports or logs. There are many types ofTestNG listeners available. IReporter, reporting ITestListener,takescreenshot IRetryAnalyzerretry failed test case running i)Listenerclass public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext Result) { } ii)In main class @Listeners(Listener_Demo.ListenerTest.class) In XML file include <listeners> <listener class-name=listenerclass> </listeners> Listeners are requiredtogenerate logs or customize TestNGreports in Selenium Webdriver. There are manytypes of listeners andcanbe usedas per requirements. Listeners are interfaces usedin selenium webdriver script Demonstratedthe use of Listener in Selenium Implementedthe Listeners for multiple classes