如何使用appium将所有recyclerView项放入ArrayList

如何使用appium将所有recyclerView项放入ArrayList,appium,appium-android,Appium,Appium Android,我有一个场景来验证Android中移动应用程序的排序和过滤功能 情景: 搜索项目 搜索结果Apper 使用某些条件进行排序和筛选 必须验证是否正确应用了排序和筛选 此处结果将添加到RecyclerView。 根据RecyclerView/appium功能,所有项目都不会加载到视图中。只有可见项才会加载到视图层次结构中。 当我向上滚动时,线性布局索引被重新排列。我无法得到所有的物品 你能给我提供任何这种情况的例子吗 或者,我们如何在项目中实现真正自动化的这种场景? 问候,, Shiva Olet

我有一个场景来验证Android中移动应用程序的排序和过滤功能

情景:

  • 搜索项目
  • 搜索结果Apper
  • 使用某些条件进行排序和筛选
  • 必须验证是否正确应用了排序和筛选
  • 此处结果将添加到RecyclerView。 根据RecyclerView/appium功能,所有项目都不会加载到视图中。只有可见项才会加载到视图层次结构中。 当我向上滚动时,线性布局索引被重新排列。我无法得到所有的物品

    你能给我提供任何这种情况的例子吗

    或者,我们如何在项目中实现真正自动化的这种场景?

    问候,,
    Shiva Oleti

    正如您所说,Android的问题在于它只“看到”屏幕上可见的东西。我有类似的问题,所以我必须深入元素并获取文本。在你的情况下,我会做以下工作:

    一,。出现搜索结果: -获取所有可见元素,输入搜索,再次获取-n个包含搜索结果的结果。例如,如果输入“beer”,则应包含文本包含“beer”的4个元素。将元素放入列表并迭代:

    List <MobileElement> listElements = driver.findElements(By.id("someId"));
    
    for(MobileElement el : listElements){
       if(el.getText().equalsIgnoreCase(expected)){
           // do some validation //
       }
    }
    
    List listElements=driver.findElements(By.id(“someId”);
    对于(MobileElement el:列表元素){
    if(el.getText().equalsIgnoreCase(预期)){
    //做一些验证//
    }
    }
    
  • 出现搜索结果:

    • 输入准确的值,该值将返回唯一的一个结果,以便您可以轻松计数
  • 使用某些条件进行排序和筛选

    • 记住项目中的初始值(如“百威啤酒”文本),进行一些过滤/排序,并检查第一个元素中的文本是否已更改以及是否应用了正确的逻辑(如排序说明)
  • 必须验证是否正确应用了排序和筛选

    • 我想我用3回答了。
  • 基本上:

  • 从存储它们的项目中“拾取”文本

  • 执行一些操作(搜索、排序、筛选)

  • “拾取”由2导致的新更改项目。步骤,储存它们

  • 比较(取决于您需要什么…)


  • 要获取所有项目,您必须刷卡并将其存储在列表中。

    请提供任何工作代码。我想我不明白你的解决办法