2017-09-13 54 views
0

@After方法失敗時出現配置錯誤,當我運行此代碼。TestNG配置失敗@AfterTest

package automationFramework; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.chrome.ChromeDriver; 
    import org.openqa.selenium.chrome.ChromeOptions; 
    import org.openqa.selenium.support.PageFactory; 
    import org.testng.annotations.AfterMethod; 
    import org.testng.annotations.BeforeMethod; 
    import org.testng.annotations.Test; 

    import pageobjects.LoginPageObj; 

    public class TestCase_POF { 

     WebDriver driver; 
     LoginPageObj lpo; 

     @BeforeMethod 
     public void beforeMethod() { 

      System.setProperty("webdriver.chrome.driver", "h:\\chromedriver.exe"); 
      ChromeOptions options = new ChromeOptions(); 
      options.addArguments("disable-infobars"); 
      options.addArguments("--start-maximized"); 
      WebDriver driver = new ChromeDriver(options); 
      driver.get("https://slingshotinsights.com/"); 

     } 

     @Test 
     public void test() { 
      lpo = PageFactory.initElements(driver, LoginPageObj.class); 
      lpo.LoginAction("johnmc", "k12345678"); 
      System.out.println("User has been Logged-in Successfully"); 

     } 

     @AfterMethod 
     public void afterMethod() { 

      driver.quit(); 

     } 
    } 

下面是Eclipse控制檯 失敗配置的輸出:@AfterMethod afterMethod 顯示java.lang.NullPointerException

+0

請幫助我,謝謝 – naqash

+0

雖然不是很清楚你的問題。但是當執行到達@ @ AfterMethod時,似乎'driver'爲空。這是你所有的代碼嗎?並且'@ BeforeMethod'中的驅動程序是否正確設置? – nullpointer

+0

嘗試@AfterSuite註釋標記而不是 –

回答

1

是,司機爲空。

@BeforeMethod 
    public void beforeMethod() { 
    //use 
    driver = new ChromeDriver(options); 

已聲明的一流水平的webdriver驅動程序;

+0

我這樣做了,但現在@Test test()方法沒有調用。 BeforeMethod beforeMethod調用之後,它會跳過Test test()方法並跳轉到AfterMethod之後方法 – naqash

+0

嘗試使用靜態WebDriver驅動程序; –