Java 无法实例化类

Java 无法实例化类,java,selenium-webdriver,testng,Java,Selenium Webdriver,Testng,我面临一个问题,我写了一个navback方法,我需要定期使用它来导航回去。当我运行时,它抛出了一个错误 下面是代码 package Examples; import java.util.concurrent.TimeUnit; //import org.junit.BeforeClass; import org.testng.annotations.BeforeClass; import org.openqa.selenium.By; import org.openqa.seleni

我面临一个问题,我写了一个navback方法,我需要定期使用它来导航回去。当我运行时,它抛出了一个错误

下面是代码

    package Examples;

import java.util.concurrent.TimeUnit;

//import org.junit.BeforeClass;
import org.testng.annotations.BeforeClass;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class Flipkart {
    public static WebDriver driver;
    Actions action = new Actions(driver);
//String ddd;
//    public Example2() {
//       super();
//    }

    @BeforeClass
    public void beforeClass()
    {
    driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(30000, TimeUnit.MILLISECONDS);


    }

    @Test

    public void mailSend() throws InterruptedException
    {

        driver.get("https://www.flipkart.com/");
        driver.manage().window().maximize();


        navback();
        driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div/ul/li/div/div[2]/div/ul/li[2]/a")).click();
        driver.navigate().back();


        navback();
        driver.findElement(By.xpath("/html/body/div/div/div[2]/div/div/ul/li/div/div[2]/div/ul/li[3]/a")).click();
        driver.navigate().back();

        driver.navigate().refresh();
    }

    public void navback()
    {
          WebElement we = driver.findElement(By.xpath("//html/body/div/div/div[2]/div/div/ul/li/a/span"));
          action.moveToElement(we).build().perform();
    }



    @AfterClass
    public void tear()
    {
       // driver.quit();
   }
}
下面是错误

org.testng.TestNGException: 
Cannot instantiate class Examples.Flipkart
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:38)
    at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:387)
    at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:299)
    at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:110)
    at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:186)
    at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:120)
    at org.testng.TestRunner.initMethods(TestRunner.java:409)
    at org.testng.TestRunner.init(TestRunner.java:235)
    at org.testng.TestRunner.init(TestRunner.java:205)
    at org.testng.TestRunner.<init>(TestRunner.java:160)
    at org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:141)
    at org.testng.remote.RemoteTestNG$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG.java:271)
    at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:561)
    at org.testng.SuiteRunner.init(SuiteRunner.java:157)
    at org.testng.SuiteRunner.<init>(SuiteRunner.java:111)
    at org.testng.TestNG.createSuiteRunner(TestNG.java:1299)
    at org.testng.TestNG.createSuiteRunners(TestNG.java:1286)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
    ... 21 more
Caused by: java.lang.NullPointerException
    at org.openqa.selenium.interactions.Actions.<init>(Actions.java:41)
    at Examples.Flipkart.<init>(Flipkart.java:18)
    ... 26 more
org.testng.TestNGException:
无法实例化类示例。Flipkart
位于org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:38)
位于org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:387)
位于org.testng.internal.ClassHelper.createInstance(ClassHelper.java:299)
位于org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:110)
位于org.testng.internal.ClassImpl.getInstances(ClassImpl.java:186)
位于org.testng.internal.TestNGClassFinder(TestNGClassFinder.java:120)
位于org.testng.TestRunner.initMethods(TestRunner.java:409)
位于org.testng.TestRunner.init(TestRunner.java:235)
位于org.testng.TestRunner.init(TestRunner.java:205)
位于org.testng.TestRunner.(TestRunner.java:160)
在org.testng.remote.RemoteTestNG$1.newTestRunner(RemoteTestNG.java:141)
位于org.testng.remote.RemoteTestNG$delegatingestrunnerfactory.newTestRunner(RemoteTestNG.java:271)
位于org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:561)
位于org.testng.SuiteRunner.init(SuiteRunner.java:157)
位于org.testng.SuiteRunner(SuiteRunner.java:111)
位于org.testng.testng.createSuiteRunner(testng.java:1299)
位于org.testng.testng.createSuiteRunners(testng.java:1286)
位于org.testng.testng.runSuitesLocally(testng.java:1140)
位于org.testng.testng.run(testng.java:1057)
位于org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
位于org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
... 还有21个
原因:java.lang.NullPointerException
位于org.openqa.selenium.interactions.Actions.(Actions.java:41)
在Examples.Flipkart.(Flipkart.java:18)
... 26多
请有人帮帮我,我不能再继续下去了


谢谢

您没有初始化
驱动程序
,因此它是
空的
,但是您将它传递给
操作

public static WebDriver driver;
Actions action = new Actions(driver);
它会抛出一个
NullPointerException

Caused by: java.lang.NullPointerException
at org.openqa.selenium.interactions.Actions.<init>(Actions.java:41)
原因:java.lang.NullPointerException
位于org.openqa.selenium.interactions.Actions.(Actions.java:41)
初始化
驱动程序


请注意生命周期。JUnit在运行
@BeforeClass
@Before
方法之前,必须创建
Flipkart
实例。实例字段初始化表达式在该点运行


重新考虑你的设计。初始化
操作
驱动程序
初始化后。

谢谢回复,如何初始化操作driver@Learner您正在
beforeClass()
中执行此操作,但它可能应该是一个实例字段,并且该方法应该在
@beforeClass
之前进行注释,而不是在
@beforeClass
之前进行注释。非常感谢,收到了