2017-09-13 89 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驱动程序; –