Android + Appium + ArrayList: как передать ArrayList между несколькими действиями - PullRequest
0 голосов
/ 09 ноября 2018

Я ищу помощь со следующим

Задача: Чтобы открыть экран с параметрами обмена:

пример экрана

Для сохранения параметров, таких как названия городов, дата и класс полета, в виде строк. Нажмите кнопку поиска обмена и сравните данные на экране с результатами, если они совпадают с сохраненными параметрами, затем выберите результат и затем сравните данные на сводном экране. Поэтому мне нужно передать данные с первого экрана через два других.

Что я пробовал: Я создал ArrayList внутри класса, который описывал экран обмена:

public class ExchangeRoutePageObject extends MainPageObject {
public ExchangeRoutePageObject(AppiumDriver driver){super(driver);}

public ArrayList<String> saveParameters(){
ArrayList<String> exchangeParameters = new ArrayList<>();
exchangeParameters.add(getElementValue(CITY_ORIGIN_FIELD_TEXT));
exchangeParameters.add(getElementValue(CITY_DESTINATION_FIELD_TEXT));
exchangeParameters.add(getElementValue(DATE_FIELD));
exchangeParameters.add(getCurrentClass());
                return exchangeParameters;
            }
}

Я пропущу код со сценарием нажатия кнопки.

Итак, когда я получаю экран результатов, я пытался получить значение из ArrayList, но я получаю ошибку теста, вызванную тем, что xpath из экрана обмена (класс ExchangeRoutePageObject) отсутствует на экране результатов обмена (класс ExchangeResultsPageObject)

public class ExchangeResultsPageObject extends MainPageObject {
    ExchangeResultsPageObject(AppiumDriver driver){super(driver);}

private void checkClass(){
        ExchangeRoutePageObject ExchangeRoutePageObject = new ExchangeRoutePageObject(driver);
        ArrayList exchangeParameters = ExchangeRoutePageObject.saveParameters();
        System.out.println(exchangeParameters.get(3));

Вопрос Что мне нужно сделать? Я видел, что для этого случая используются намерения с действиями, но я не понимаю, как использовать это с тестом на appium.

1 Ответ

0 голосов
/ 09 ноября 2018

Несколько месяцев назад я использовал этот тип подхода для передачи параметра между несколькими действиями

SharedPreferences themeInfo = getSharedPreferences("THEMECONFIG",0);

Попробуйте взглянуть на этот ответ в стеке. Это САЙТ может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...