gpt4 book ai didi

java - 无法使用 Robotium 与屏幕中的所有 TextView 进行交互

转载 作者:行者123 更新时间:2023-12-01 14:04:36 26 4
gpt4 key购买 nike

我在使用 Robotium 时遇到了一个奇怪的问题,当我使用 solo.getCurrentViews() 时,我在屏幕上获取 View 。但对于某些认为 View 已加载的 Activity ,我无法在屏幕上看到 View ,它们是隐藏的,需要一些用户操作才能显示它们。例如,在亚马逊主屏幕中,我必须滚动浏览产品列表,初始屏幕中仅显示 3 个产品。但是 solo.getCurrentViews() 会加载所有产品 View 。现在,如果我单击屏幕上显示的三个 TextView 之外的 TextView,我会收到错误并且应用程序退出。所以,我想我必须以某种方式检查 TextView 当前在屏幕上是否可见。这适用于所有 View 对象。Robotium 加载所有 View ,但单击当前不可见的 View 会导致错误。

最佳答案

Solo.getCurrentViews() 将返回所有 View 。您可以使用:RobotiumUtils.removeInvisibleViews(solo.getCurrentViews())来过滤可见 View 。

或者您可以使用以下代码自行过滤可见的 TextView。

public ArrayList<TextView> getFilteredTextViews()
{
ArrayList<TextView> textViewList = solo.getCurrentViews(TextView.class);
ArrayList<TextView> filteredTextViewList = new ArrayList<TextView>();
for (TextView textview : textViewList ) {
if (textview != null && textview.isShown())
{
filteredTextViewList .add(view);
}
}
return filteredTextViewList;
}

关于java - 无法使用 Robotium 与屏幕中的所有 TextView 进行交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com