【问题标题】:I am getting error "java.lang.NullPointerException"我收到错误“java.lang.NullPointerException”
【发布时间】:2017-01-05 01:54:26
【问题描述】:

我正在使用 selenium Webdriver 来测试 Web 应用程序。我正在使用 marioette 驱动程序,因为我使用的是 firefox 48.0,因为使用相同的网页会打开,但是我无法将值放在文本框中,它会给出错误“java.lang.NullPointerException” 我写了代码

@BeforeTest
      public void setUp() throws Exception {
         System.setProperty("webdriver.gecko.driver", "D:\\ashwini\\geckodriver.exe");

          driver= new MarionetteDriver();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }

@Test
      public void testAddAccount() throws Exception {
        driver.get("http://qa.luna.wexeurope.com/CPCardWeb/login.htm?programme=CPYCGB");

        driver.findElement(By.id("username")).clear();
        driver.findElement(By.id("username")).sendKeys("cp_admin");
}


@AfterTest
      public void teardown()
      {
          driver.quit();
      }

输出是:

1472448949884   Marionette  INFO    sendAsync 3744f8a9-772e-42fe-8c85-6f9964888fb1
FAILED: testAddAccount
java.lang.NullPointerException
at Add_Account.testAddAccount(Add_Account.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

我已经检查过它在 sendkeys 中给出了空值。 但是,我没有使用 by.id,而是使用了其他选项,例如名称、xpath、css 选择器。 它只给出错误。 文本框中仍然没有插入值

第 36 行是 driver.findElement(By.id("username")).clear(); driver.findElement(By.id("username")).sendKeys("cp_admin");

正如你所说,我已经调试过了,是的,它会将空值传递给元素,这就是它抛出空指针异常的原因。所以请让我知道解决这个问题。因为我尝试使用 id、name、xpath、css 选择器传递值。显示相同的错误。那你能帮帮我吗?

【问题讨论】:

  • 放置一个调试点并检查元素是否被识别为“driver.findElement(By.id("username"))”,当您尝试发送密钥时,它可能会变为 null 并在下一行, 语句类似于 null.sendKeys 抛出空指针异常
  • 我已经调试过了,正如你所说,是的,它将空值传递给元素,这就是它抛出空指针异常的原因。所以请让我知道解决这个问题。因为我尝试使用 id、name、xpath、css 选择器传递值。显示相同的错误。那你能帮帮我吗?

标签: eclipse testing selenium-webdriver firefox-marionette


【解决方案1】:

NullPointerException 表示您的驱动程序未正确初始化,因此在尝试查找元素时它具有空值。这与 xpath/id 等无关。

请检查 Add_Account 类的第 36 行,您将知道究竟哪里有错误。如果您将班级的整个代码放在任何人都可以查看,那将是一件好事。

【讨论】:

    【解决方案2】:

    通过从引用的库中删除不需要的 jar 来解决问题

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 2015-01-30
      • 1970-01-01
      • 2012-03-05
      • 2014-12-15
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 2013-12-19
      相关资源
      最近更新 更多