TestNG配置失败

时间:2017-11-01 13:49:57

标签: java eclipse selenium-webdriver testng

我试图通过Selenium WD 3.6版本运行TestNG脚本 该脚本只需要通过Chrome浏览器浏览到Facebook

import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class FB {
     ChromeDriver driver= new ChromeDriver ();
     @BeforeTest
      public void beforeTest() {
         System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
            driver.manage().window().maximize();

      } 

     @Test
     public void URL()
     {
         driver.get("https://www.facebook.com/");
}
}

我在控制台中收到以下错误:

[RemoteTestNG] detected TestNG version 6.12.0
org.testng.TestNGException: 
Cannot instantiate class Staging.FB

请告知我做错了什么

由于

1 个答案:

答案 0 :(得分:0)

我建议您将driver成员类型更改为WebDriver,然后在@BeforeTest方法中执行此操作,而不是在班级初始化。

如果我们查看TestNG生命周期,FB类将在@BeforeTest方法运行之前实例化。为了实现这一点,WebDriver实例字段需要解决。由于您似乎使用系统属性来设置Chrome驱动程序可执行文件的位置,因此无法在不抛出错误的情况下进行此初始化(因为这发生在@BeforeTest中)。通过在属性声明后移动WebDriver初始化,初始化可以成功运行。

因此...

public class FB {
    WebDriver driver;

    @BeforeTest
    public void beforeTest() {
        System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();
    }

    // Then add your @Test method(s) here...
}