NullPointerException при чтении файла свойств в селене - PullRequest
0 голосов
/ 30 марта 2020

У меня есть код ниже:

public class BasePage {
    public static WebDriver driver;
    public static Properties prop;
    FileInputStream objfile;

    @Test
    public void BasePages() throws IOException {
        try {
            prop = new Properties();

            objfile = new FileInputStream(System.getProperty("app.properties"));
            prop.load(objfile);
            System.out.println("file loaded");
        } catch (Exception e) {
            System.out.println("catch exception" + e);
        }
    }
}

FileInputStream показывает NullPointerException. Я попытался отладить приведенный выше код только после чтения этой строки, он перемещается в блок catch.

Может кто-нибудь объяснить, почему я получаю Исключение и как это решить? * Файл 1008 *

app.properties содержит следующие строки:

baseUrl = "https://www.google.com/";
browser="chrome";

Ответы [ 3 ]

0 голосов
/ 30 марта 2020
objfile= new FileInputStream(System.getProperty("app.properties"));

Приведенная выше строка вызывает проблему, поскольку System.getProperty("app.properties") возвращает ноль. Не знаю, почему вы используете это.

Просто удалите System.getProperty(), как показано ниже. Убедитесь, что вы используете правильный путь к файлу

objfile = new FileInputStream("app.properties");

Если вы намеревались получить доступ к текущему каталогу проекта, тогда код должен быть

objfile = new FileInputStream(System.getProperty("user.dir")+"/"+"app.properties");
0 голосов
/ 30 марта 2020
  1. указать полный путь к файлу свойств objfile = new FileInputStream ("указать полный путь к файлу свойств")

  2. если объект objfile, который является объектом, не создан из-за неправильного пути

  3. и мы пытаемся разыменовать нулевой объект, поэтому получаем исключение нулевого указателя prop.load (objfile);

Обратите внимание, я дал ответ быстрее всего можно увидеть в разделе комментариев. пожалуйста, примите во внимание, спасибо

0 голосов
/ 30 марта 2020

Пожалуйста, попробуйте следующее решение:

   try {

    InputStream  objfile = new FileInputStream("path/to/app.properties")) {

    Properties prop = new Properties();

    // load a properties file
    prop.load(input);

    // get the property value and print it out
    System.out.println(prop.getProperty("baseUrl"));
    System.out.println(prop.getProperty("browser"));


} catch (IOException ex) {
    ex.printStackTrace();
}
...