当前位置: 首页 > 知识库问答 >
问题:

我的代码里有NullPointerException。怎么处理

邢新
2023-03-14

我使用Selenium编写了Java代码。当我运行代码时,它会抛出NullPointerException。检查下面的异常

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");
    }
    }

共有1个答案

乜华翰
2023-03-14

您看到的是空点异常,因为从 main() 您尝试在一开始就访问登录应用程序() 方法,这需要 WebDriver 的活动实例,即驱动程序才能找到元素(By.name(“用户名”));

解决方案是首先访问启动应用程序()方法,以便您拥有驱动程序IE浏览器的活动实例。接下来,您可以访问登录应用程序()方法。

这是您的工作代码块:

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();
    }

}
 类似资料:
  • 问题内容: 我已经使用Selenium用Java编写了代码。当我运行代码时,它将引发NullPointerException。检查以下异常 我的代码如下: 问题答案: 您会看到一个原因,因为您从一开始就尝试访问该方法,这需要in的活动实例,即to &and perform 方法。 解决方案是先访问该方法,以便您拥有and 的活动实例。接下来,您可以访问方法。 这是您的工作代码块:

  • 问题内容: 我为按钮添加了图像,但是当我运行该框架时,将抛出此异常。为什么?请帮助我。 第138行: 第91行: 我使用了此检查不当(建议使用Peter Lang):System.out.println(getClass()。getResource(“ / Images / yahoo_1.gif”)); 它返回null,为什么?请帮我。 问题答案: 这意味着,将返回。 JavaDoc指出,如果

  • 问题内容: 这是我的整个源代码: 代码卡在了 fmt.Println(“ enq =”,t)上, 但是我不知道为什么,这太奇怪了。 问题答案: deQueue在失败情况下无限循环,这阻塞了CPU。Goroutine在执行CPU工作时不会屈服。GOMAXPROCS必须大于等于2才能获得CPU并行性。 只是为了踢,这是使用高阶通道的线程安全,无阻塞队列实现:https : //gist.github.

  • 我有一个JavaFX应用程序,可以拍摄节点的屏幕截图/快照。截图的代码如下所示: 其中是一个。通常情况下,这很正常,但是当太大时(我的意思是,在10240x5548像素的顺序上),我得到了这个异常: 这种情况并不常见,但我仍然希望处理这种情况,即使只是告诉用户不支持这种解决方案。问题是堆栈跟踪根本不涉及我的代码。我的代码中没有一行。我猜这是一个由我调用的东西触发的线程,它会在线程崩溃后立即返回。

  • 这段代码是我用Java Swing制作的Tic-Tac-Toe程序的一部分。为什么在添加用于添加按钮的for语句时返回NullPointerException?

  • 我看过一些关于这个问题的帖子,我想我的逻辑和他们的答案差不多。但我找不到我到底错在哪里。 我的代码首先检查提供的的长度,如果长度小于或等于2,则自动返回. 接下来,它删除()第一个元素,并检查其余元素是否按升序排列。 如果不符合顺序,它将用序列替换它,并重复第二步,但这次将删除下一个元素()。 这将继续进行,直到不再有要移除的元素,最终返回 如果在任何迭代中发现列表是升序的,则函数返回. 这是代码