Исключение нулевого указателя Драйвер Android

#java #android #appium #serenity-bdd

#java #Android #appium #спокойствие-bdd

Вопрос:

У меня есть проект ajava / serenity / appium, и в настоящее время мои возможности заданы в файле свойств serenity. Ниже я хочу выполнить прокрутку, но я получаю ошибку исключения нулевого указателя для моего AndroidDriver. Я не уверен, как исправить исключение нулевого указателя.

 public class ScrollingMethods extends PageObject {

        AndroidDriver androidDriver;


    public void scrollDown() {

        int pressX = androidDriver.manage().window().getSize().width / 2;

        int bottomY = androidDriver.manage().window().getSize().height * 4/5;

        int topY = androidDriver.manage().window().getSize().height / 8;

        scroll(pressX, bottomY, pressX, topY);
    }


    public void scroll(int fromX, int fromY, int toX, int toY) {
        TouchAction touchAction = new TouchAction(androidDriver);
        touchAction.longPress(fromX, fromY).moveTo(toX, toY).release().perform();
    }
}
  

Комментарии:

1. да, потому что ваш драйвер Android равен нулю…

2. @Pali ха-ха, я понимаю, что это null, но я не уверен, как не сделать его нулевым. Обычно они говорят new AndroidDriver (url, возможности), а затем устанавливают их, но это в моих свойствах serenity. Я не опытный разработчик, поэтому не уверен, что еще я могу сделать, чтобы это исправить.

Ответ №1:

Я хочу выполнить прокрутку, но получаю ошибку исключения нулевого указателя для моего AndroidDriver

Вы получаете NullPointerException , потому что вы не инициализируете его. Вы ДОЛЖНЫ инициализировать его с теми параметрами, которые вы хотите использовать, как указано далее AndroidDriver documentation .

Итак, возможно, вы хотите использовать EnvrionmentVariables , как говорится в этом сообщении, проблему github. Но наверняка вам нужно сделать что-то вроде :

 androidDriver = new AndroidDriver(new URL("http://..."), capabilities)
  

И если вы это сделаете, он должен удалить этот NPE.

Комментарии:

1. но у меня уже есть это свойство, установленное в свойствах serenity, так как мне взять его оттуда, а не снова записывать URL и возможности?

2. Вам нужно сохранить их где-нибудь в вашем приложении, а затем получить их.