Android + Appium + ArrayList:如何在多个活动之间传递ArrayList

时间:2018-11-09 19:19:23

标签: java android arrays arraylist appium

我正在寻找以下方面的帮助

任务:打开带有交换参数的屏幕:

screen example

将诸如城市名称,日期和航班类别的参数保存为字符串。单击搜索交换按钮,如果结果等于保存的参数,则将屏幕上的数据与结果进行比较,然后选择一个结果,然后将摘要屏幕上的数据进行比较。 所以我需要将第一个屏幕上的数据传递给另外两个屏幕。

我尝试了什么: 我在类中创建了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中获取值,但是我得到了测试失败,导致交换结果屏幕(ExchangeResultsPageObject类)上不存在来自交换屏幕的xpath(ExchangeRoutePageObject类)

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 :(得分:0)

几个月前,我使用这种方法在多个活动之间传递参数

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

尝试看一下这个答案。这个SITE可能有帮助