java - 为什么我在测试中收到 NullPointerException?

标签 java class selenium junit

我的测试套件分为两部分:测试数据库、WebElements 的 xpath 位置、.click() 命令等。我还有一个测试套件。

这是一个示例测试,出于实验目的共享其处理的包。此刻我并不担心输出结果(我知道如何做到这一点),代码只需要工作即可。

package LoginPage;

import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import org.openqa.selenium.*;

public class FunctionCheck {
      private WebDriver driver;
      private String baseUrl;

      @Before
      public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "http://www.XXXXXXXXXXX.com/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }
      @Test
      public void test() throws Exception {
        driver.get(baseUrl + "XXXXXXXXXXXX");
        Thread.sleep(600);
        LoginPage.enterValidCredentials myins = new LoginPage.enterValidCredentials();
        myins.run();
      }
      @After
      public void tearDown() throws Exception {
        driver.quit();
      }
}

这是位于同一包中的“enterValidCredentials”类。

package LoginPage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class enterValidCredentials { // This class enters in a valid username and valid password on the login page.
    public void run() {
        WebDriver driver;
        driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXX");
        driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXX");    
    }
}

我遇到两个问题:

  1. 在“enterValidCredentials”类中,它希望我“初始化”驱动程序变量。 Eclipse 中的自动修复将第 8 行设置为 WebDriver driver = null;
  2. 执行上述操作后,我的测试抛出了 NullPointerException

我已经搜索文档有一段时间了。我真的很困惑到底发生了什么。我想要的只是运行 run() 方法,并将信息插入页面。这就是目标。

最佳答案

public class enterValidCredentials {
  public void run(WebDriver driver) {
    driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXX");
    driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXX");    
  }
}

将现有的 WebDriver 实例传递到 enterValidCredentials.run:

myins.run(driver);

关于java - 为什么我在测试中收到 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994587/

相关文章:

javascript - 如何从通过 Selenium 提供的 html 中提取动态文本 3204255?

php - 为什么 Selenium 表单提交返回时缺少所有字段?

java - 所拍摄照片的亮度问题 (Xamarin.Android)

java - 保护用户输入(尚未提交)免于 session 超时的最佳方法是什么?

c++ - 错误 C2653 : . ..不是现有的类

perl:不显眼地写入由 TAP::Formatter::HTML 打开的 IO::Handle

java - 预期变量

java - 尝试在应用程序和 servlet 之间建立连接时,URLConnection.getInputStream() 抛出 FileNotFoundException

c++ - 如何在 C++ 的类中返回一个对象的字符串?

python - 如何从基类动态创建派生类