How to pass selenium webdriver object to another class

Test Automation
3

In Selenium test script it is required to use or perform an action on current driver instance of browser(Chrome, IE, firefox etc).

it is therefore required to use the same driver object if the driver usage requirement in another class. How to pass it or how to get that same object in another class(java- considering scripting in java).

How to do it-using constructor and inheritance


package Seleniumclasses;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Webdriverdefinition {
public static WebDriver driver = null;

public Webdriverdefinition()
{
if(driver == null)
{
String chromepath;
chromepath = “./chromedriver”;
System.setProperty(“webdriver.chrome.driver”, chromepath+”.exe” );
driver = new ChromeDriver();
System.out.println(“**Chrome driver initiated**”);
}
else
{
System.out.println(“**Chrome driver already instantiated**”);
}

}

public static WebDriver getdriver()
{
if (driver == null){

return driver;
}else{
return driver;
}

}

}

class 2- where Class1(Webdriverdefinition) has been extended, using extend has automatically constructor which defining object. In @Test method Login getdriver is being called which is getting driver from class –

In class 2 chrome driver is being launched and google search has been opened, Test has been entered in text box and button has been clicked.

1(Webdriverdefinition class)

package Seleniumclasses;
import org.openqa.selenium.By;
import org.testng.annotations.Test;

public class WebInteraction extends Webdriverdefinition
{

@Test
public void login()
{
//getdriver().get(“https://www.google.com/”);
getdriver().findElement(By.id(“lst-ib”)).sendKeys("Test Automation”);
getdriver().findElement(By.cssSelector(“[name='btnK']”)).click();
}

}

It is recommended to use same driver instance inside your test scripts, and to pass the driver instance across different class/methods there are couple of other ways to declare and pass driver object which i will publish in next post. Keep reading for the same.

Its Prashant Chaudhary, I have 10+ years of experience in software test automation, performance & process automation with various commercial and open source tools. This blog shares my experience on the topic of Automation. The content published on my blog is solely mine, it does not express the views of any of my employers (current or previous).

I have experienced in automation framework designing, planning, doing maturity assessment of automation (F/W, scripts) and automation tool evaluation. Good understanding in various kinds of automation- that includes Application, and Process Automation. Implemented various CI tools, Used VSO, Jenkins, and Bamboo for implementing Test automation in CI/CD and robotic process automation using open source solution(Selenium). Skilled in leading automation team, managing vendors in automation & functional QA projects.

Tool Knowledge-
Selenium WebDriver, IBM RFT, HP UFT, Appium, Sahi Pro, Sikuli
Mobile Automation- Appium, Perfecto, Nokia Automation Tools- Auster, Phoenix, Trap
Performance Testing tool- IBM RPT, JMeter, Empirix, Neoload HttpWatch.
CI Tools- VSO, Jenkins and Bamboo

I Completed my B.Tech in computer science from UPTU University – Lucknow in the year 2007.

I like to write on selenium/Automation in my spare time . I started writing this blog 2 year ago and now my blog has grown upto 1000+Subscribers.

Drop me an email if you have any query or any help is required in Automation.

3 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Test Automation
1
What is ITestListner interface and its Use in Selenium

There are several interfaces available in TestNG that allow you to modify TestNG’s behavior or to give test scripts additional strength. These interfaces are broadly called “TestNG Listeners”. Here are a few listeners which are commonly used: 1- IAnnotationTransformer 2- IAnnotationTransformer2 3- IHookable 4- IInvokedMethodListener 5- IMethodInterceptor 6- IReporter 7- …

Test Automation
How to Capture Screenshot in Selenium Webdriver-3 different ways

Abstract– Capturing screenshot is an essential feature of a test automation framework, They help in defect analyses once after test execution is over. In this blog post we will see how to capture screenshot, there are different ways to capture screenshots. Which includes- 1- Capture full Page 2- Capturng full …

Test Automation
What is Headless browser automation

Hello Readers, In this post we will read about headless browser automation and how to use or invoke different headless browser using selenium. First of all lets understand What is a headless browser? A headless browser is a web-browser without a GUI-Graphical User Interface. The major difference with browser having …

Shares