2017-04-02 1 views
-1
public class Base 
{ 
    public WebDriver driver; 

    @BeforeMethod 
    public void setUp() 
    { 
     driver = new FirefoxDriver(); 
    } 

} 

public class useFunction extends Base 
{ 

    public useFunction(WebDriver driver) 
    { 
     this.driver = driver; 
    } 

    public void func1() 
    { 
     driver.findElement().click(); //driver is null 
     -------- 
     --------- 
    } 
} 

Public class Test extends Base 
{ 
    useFunction funObj = new useFunction(driver); 
    @Test 
    public void testMethod1() 
    { 
     funObj.func1(); 
     ---- 
     ------ 

    } 
} 

에 기본 클래스에서 인스턴스 Webdriver 초기화를 사용하는 방법. 다음 Base.driver에 드라이버를 할당 널 포인터 예외를 받고, Test class 내에서 기본 클래스 생성자에서자식 클래스의 자바 내가 같은 정적 Webdriver 인스턴스를 선언하지 않고 <code>UseFunction class</code>에서 WebDriver 인스턴스의 초기화 값을 사용할 수 있습니다 어떻게

+0

을 위해 작동하는지 알려주세요? –

답변

0

초기화 웹 드라이버의 객체를 생성하고 테스트 클래스에서 기본 클래스를 확장하면서 내가 UseFunction class의 생성자에서 드라이버를 통과하면. 코드 아래

시도

기본 클래스 :

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class Base 
{ 
public WebDriver driver; 

public Base(){ 
    driver = new ChromeDriver(); 
} 
} 

UseFunction 클래스 :

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 

public class useFunction 
{ 
    WebDriver driver; 

    public useFunction(WebDriver driver) 
    { 
    this.driver = driver; 
    } 

    public void func1() 
    { 
    driver.findElement(By.id("id of the element")).click(); 
    } 
    } 

Test1을 클래스 :

,
import org.testng.annotations.Test; 

public class Test1{ 

@Test 
public void testMethod1() 
{ 
    Base base = new Base(); 
    useFunction funObj = new useFunction(base.driver); 
    funObj.func1(); 

} 
} 

그것을 시도하고 당신이 정적 드라이버를 사용하지 않는 이유를 설명하십시오 할 수 있습니다

+0

** 정적 **으로 선언하지 않고 초기화해야합니다. 감사합니다 – user3598844

+0

드라이버 개체의 정적 키워드를 제거하여 내 대답을 업데이트, 확인하고 어떤 질문이 있으면 알려주십시오 – Akarsh

+0

-Thanks.It이 방식으로 작동하지만 생성자 내부의 webdriver 인스턴스를 초기화하기위한 전체 논리를 작성하는 것이 좋습니다. Base 클래스의. 주석을 사용하거나 드라이버를 초기화 한 후 좀 더 많은 작업을 수행해야하는 경우 어떻게합니까? – user3598844