selenium框架中的空指针异常

selenium框架中的空指针异常,selenium,automation,automated-tests,testng,Selenium,Automation,Automated Tests,Testng,嗨,我有三节课 驾驶方法: 在这个类中,我创建了一个“initiate”方法来初始化驱动程序 public class Drivermethod { public WebDriver driver; public static WebDriver initiate(WebDriver driver){ System.setProperty("webdriver.ie.driver","C:\\Automation\\IEDriverSeer_Win32_3.8.

嗨,我有三节课

  • 驾驶方法: 在这个类中,我创建了一个“initiate”方法来初始化驱动程序

    public class Drivermethod {
        public WebDriver driver;
    
        public static WebDriver initiate(WebDriver driver){
            System.setProperty("webdriver.ie.driver","C:\\Automation\\IEDriverSeer_Win32_3.8.0\\IEDriverServer.exe");
            driver=new InternetExplorerDriver();
            driver.manage().window().maximize(); 
            return driver;
        }
    }
    
  • 级别管理: 在这个类中,我创建了一个“managelink”方法来查找元素

    public class Levelmanage {
        public static  WebElement element;
    
        public static WebElement managelink(WebDriver driver) {
            element=driver.findElement(By.linkText("Manager link"));
            return element;
        }
    }
    
  • 测试1

    public class Test1  {
    
    public WebDriver driver;
    
    @Test
    public void f() {
        Drivermethod.initiate(driver).get("url");
        Levelmanage.managelink(driver).click();
    }
    

  • 在第三个类中,我调用了前2个方法…当我运行这个类(Test1)时,第一个方法执行发生在第二个类(Levelmanage.managelink(driver.click();)驱动程序变为NULL时。请在这方面帮助我….

    这是因为您没有从测试类初始化
    驱动程序
    字段

    public class Test1 {
    
    public WebDriver driver;
    
         @Test public void f() {
              driver = Drivermethod.initiate(driver).get("url");
              Levelmanage.managelink(driver).click();
         }
    }
    
    另外,对于initiate方法,
    WebDriver参数
    是无用的。这是您创建驱动程序的地方,您不会从任何地方收到它

    除此之外,如果您的
    Drivermethod
    类中没有任何其他方法,那么
    字段WebDriver
    也没用。我猜是这样的,因为它没有分配到任何地方。

    可能重复的