繁体   English   中英

在线程“main”中获取错误异常 java.lang.NullPointerException

[英]Getting error exception in thread "main" java.lang.NullPointerException

当我在 selenium 中运行以下类文件时,会启动浏览器并打开 URL,但之后出现错误:

exception in thread "main" java.lang.NullPointerException
    at guru99project.guru99project.printtitlepage(guru99project.java:25)
    at guru99project.Main_method.main(Main_method.java:10)

代码试验:

package guru99project;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class guru99project {

 public WebDriver driver;

    public void invokechrome() {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\A\\eclipse-workspace\\libs\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        Dimension dim = new Dimension(640,480);
        driver.manage().window().setSize(dim);
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.get("http://demo.guru99.com/v4");            
    }

    public void printtitlepage() {

        System.out.println(driver.getTitle());      
    }

    public void login (String uname, String pwd) {
        WebElement usid = driver.findElement(By.name("uid"));       
        usid.sendKeys(uname);

     //   driver.findElement(By.name("uid")).sendKeys(uname);
        driver.findElement(By.name("password")).sendKeys(pwd);
        driver.findElement(By.name("btnLogin")).click();



    }

}

    package guru99project;

public class Main_method {

    public static void main(String[] args) {

        guru99project gp = new guru99project();

        gp.invokechrome();
        gp.printtitlepage();
        gp.login("mnr160177", "hynydej");

    }

}

您已经将驱动程序定义为全局(类级别)的WebDriver实例:

public WebDriver driver;

因此,您不需要在同一个Class内的任何methods()定义WebDriver 的任何其他新实例,并继续使用WebDriver的相同全局定义实例,即driver

您需要从行中删除WebDriver

WebDriver driver = new ChromeDriver();

所以行将是:

driver = new ChromeDriver();

您已被指定为public WebDriver driver;

所以你不需要再次指定为,

Webdriver driver = new ChromeDriver();//if you need This , Then Don't Specify public Webdriver driver at the Top. Initialize here it self and Import it. 

请将上面的行更改为,

driver = new ChromeDriver();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM