当我在 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/