我试图通过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
请告知我做错了什么
由于
答案 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...
}