java - 在线程 "main"java.lang.NullPointerException 中获取错误异常

标签 java selenium selenium-webdriver webdriver selenium-chromedriver

当我在 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");

    }

}

最佳答案

您已经将 driver 定义为全局(类级别)WebDriver 的实例,如下所示:

public WebDriver driver;

因此,您不需要在同一内的任何methods()中定义WebDriver的任何其他新实例,并且继续使用相同的全局定义的 WebDriver 实例,即驱动程序

您需要从行中删除WebDriver:

WebDriver driver = new ChromeDriver();

所以行是:

driver = new ChromeDriver();

关于java - 在线程 "main"java.lang.NullPointerException 中获取错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024603/

相关文章:

angularjs - 在 Angular 网站上使用 Protractor 的替代方案

javascript - 在 Selenium 中使用 JavaScriptExecutor 和 Java - 它获取值但不将其显示在字段中

ruby - 如何使用 Ruby 检查是否在 Selenium WebDriver 中选中了复选框

python - 在Python+Selenium+Firefox中等待下载完成

Java Selenium ChromeDriver SendKeys 真的很慢

java - MongoDB 使用 java mongo 驱动程序自动递增 id 字段?

java - 使用 java.lang.reflection 的构造函数的 AspectJ 切入点

java - 类似 Collections.rotate 的 map

java - 用户输入错误后循环代码

c# - 我可以使用 Selenium WebDriverWait 等待相对于已知 Web 元素的 xpath 吗?