Selenium 我的代码中的NullPointerException。如何处理
我已经使用Selenium用Java编写了代码。当我运行代码时,它抛出了一个NullPointerException。检查下面的异常Selenium 我的代码中的NullPointerException。如何处理,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我已经使用Selenium用Java编写了代码。当我运行代码时,它抛出了一个NullPointerException。检查下面的异常 Exception in thread "main" java.lang.NullPointerException at AdminInterface.loginApplication(AdminInterface.java:17) at AdminInterface.main(AdminInterface.java:29) 我的代码如下: im
Exception in thread "main" java.lang.NullPointerException
at AdminInterface.loginApplication(AdminInterface.java:17)
at AdminInterface.main(AdminInterface.java:29)
我的代码如下:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class AdminInterface {
public WebDriver driver;
public void launchApplication() throws Exception
{
System.setProperty("webdriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.gcrit.com/build3/admin/");
}
public void loginApplication(String Username, String Password)
{
driver.findElement(By.name("username")).sendKeys(Username);
driver.findElement(By.name("password")).sendKeys(Password);
driver.findElement(By.id("tbd1")).click();
}
public void closeBrowser()
{
driver.close();
}
public static void main(String[] args)
{
AdminInterface obj = new AdminInterface();
obj.loginApplication("admin", "admin@123");
}
}
您正在看到一个
NullPointerException
,因为您正试图从main()
开始访问loginApplication()
方法,这需要WebDriver
的活动实例,即driver
到findElement(按.name(“用户名”)代码>&findElement(按名称(“密码”)编码>并在HTMLDOM
上执行sendKeys()
方法
解决方案是首先访问launchApplication()
方法,这样您就有了driver
和IE-Browser
的活动实例。接下来,您可以访问loginApplication()
方法
这是您的工作代码块:
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Q45474353_NPE
{
public WebDriver driver;
public void launchApplication()
{
System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.gcrit.com/build3/admin/");
}
public void loginApplication(String Username, String Password)
{
driver.findElement(By.name("username")).sendKeys(Username);
driver.findElement(By.name("password")).sendKeys(Password);
driver.findElement(By.id("tbd1")).click();
}
public void closeBrowser()
{
driver.close();
}
public static void main(String[] args)
{
Q45474353_NPE obj = new Q45474353_NPE();
obj.launchApplication();
obj.loginApplication("admin", "admin@123");
obj.closeBrowser();
}
}
您正在看到一个NullPointerException
,因为您正试图从main()
开始访问loginApplication()
方法,这需要WebDriver
的活动实例,即driver
到findElement(按.name(“用户名”)代码>&findElement(按名称(“密码”)编码>并在HTMLDOM
上执行sendKeys()
方法
解决方案是首先访问launchApplication()
方法,这样您就有了driver
和IE-Browser
的活动实例。接下来,您可以访问loginApplication()
方法
这是您的工作代码块:
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Q45474353_NPE
{
public WebDriver driver;
public void launchApplication()
{
System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.gcrit.com/build3/admin/");
}
public void loginApplication(String Username, String Password)
{
driver.findElement(By.name("username")).sendKeys(Username);
driver.findElement(By.name("password")).sendKeys(Password);
driver.findElement(By.id("tbd1")).click();
}
public void closeBrowser()
{
driver.close();
}
public static void main(String[] args)
{
Q45474353_NPE obj = new Q45474353_NPE();
obj.launchApplication();
obj.loginApplication("admin", "admin@123");
obj.closeBrowser();
}
}
您没有调用launchApplication
方法,在这里您实际初始化webdriver对象。您没有调用launchApplication
方法,在这里您实际初始化webdriver对象。的可能重复