【问题标题】:Appium automation test: How to get element or text from custom UI in android [android.view.View]Appium 自动化测试:如何从 android [android.view.View] 中的自定义 UI 中获取元素或文本
【发布时间】:2016-07-29 14:13:06
【问题描述】:

我是 Appium 在 Android 上测试自动化的初学者。 我使用 IUAtomatorviewer 从 Android 应用程序中获取元素 但我认为我的申请来自海关 UI。我知道那是 android.support.v7.widget.RecyclerView / android.view.View 在 [android.view.View] 元素中, 没有文字或其他信息

我看到它包括 TextView、Image...与 listview 中的一个项目相同

这是我的代码

AndroidElement el = driver.findElement(By.id(io.***.vodi:id/message_list_item_chat_id));
AndroidElement el2 = (AndroidElement) el.findElementByClassName("android.view.View");
el2.getText(); //result is blank
el2.getAttribute("text") //result is blank

所以 我如何获取文本内部 [android.view.View] ?或视图的属性

这里是 UIAutomatorviewer 的图片

【问题讨论】:

  • 虽然我怀疑它是因为在开发过程中使用了 RecyclerView,但我仍然希望你不会在 UIAutomatorViewer 上看到完全不同的 View
  • 你使用的是哪个android sdk版本?
  • 我认为更新到最新的 sdk 和 UIAutomator 应该可以工作。

标签: android automation automated-tests appium


【解决方案1】:

通过资源 ID 获取“回收站视图”。然后,您可以获取不同视图的内部并选择第 4 个视图以查看“视图 #4”。

【讨论】:

    【解决方案2】:

    在从 android 视图中获取文本时,我也遇到了同样的问题。以下代码对我有帮助:

    在列表中获取所有元素:

    List<WebElement> allChats : driver.findElements(By.xpath("//*[@class='android.view.View']"));
    

    然后遍历for循环并使用name属性获取文本

    for(WebElement chat : allChats)
    {
         System.out.println(chat.getAttribute("name"));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 2015-12-05
      相关资源
      最近更新 更多