当前位置: 首页 > 知识库问答 >
问题:

Android浓缩咖啡点击ImageButton点击错误位置

葛驰
2023-03-14

当我尝试点击图像按钮时,我在android上的espresso UI测试有一个问题:

我有以下布局:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#FFFFFF">

        <ImageButton
                android:id="@+id/parent_task_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#00000000"
                android:rotation="90"
                android:layout_gravity="center_vertical"
                android:src="@drawable/ic_subdirectory_arrow_left_black_24dp"
                android:paddingRight="10dp"
                android:paddingLeft="12dp"/>

        <View
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:background="@color/layout_divider"></View>

        <com.mypackage.ui.TasklistItem
                android:id="@+id/parent_task_item"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

    </LinearLayout>

在我的应用程序中,如下所示:

onView(withId(R.id.parent_task_button)).perform(click());

共有1个答案

通正平
2023-03-14

我找到了导致问题的行(在ImageButton中):

 android:rotation="90"

如果我从图像按钮中移除这个旋转,点击是正确的在中间。所以我的临时解决办法是旋转可抽屉本身,而不是按钮。

我目前也在深入研究android espresso代码,并试图找到这里错误的代码。似乎要单击的坐标的计算是错误的,因为它忽略了旋转,因此计算错误。如果我发现了什么,我会更新这篇文章。

 类似资料:
  • 我试着用“浓缩咖啡”写简单的测试 但我有个错误: 我正在尝试不同的框架进行测试,对我来说是最好的,但如果有人能帮助修复这个错误,我将非常感激

  • 我有一个自定义的,根据设计,它不是完全可见的,所以当我执行单击操作时,我会得到以下错误: 按钮的一小部分在屏幕外(即它被裁剪在顶部),可能12%的按钮在屏幕外。这是设计的,不可能滚动或执行任何视图操作来使其可见。有谁知道如何克服这个90%的限制?

  • > 我想根据里面的变量文本'job#'单击特定的回收器视图。 但无法执行相同的操作,因为我不知道应该单击的确切位置。 回收器视图的位置不断变化。尝试下面的代码,但它点击静态位置'6' recyclerView=onView(allOf(withId(r.id.recycler_view),issplayed()));recyclerview.perform(actionOnItemAtPositi

  • 我有以下问题。我想用浓缩咖啡来测试我的应用程序。因此,我想点击一个按钮,它是“按钮”片段的一部分,这个片段位于mainactivity中的框架布局中。 提前感谢! 编辑:异常显示视图层次结构 以下是我调用的方法: 在按钮id上用withId代替withText是没有意义的。

  • null 动画/转换被禁用,但这不会阻止CircularProgressLayout动画化。 我尝试,但即使这样,在第一次单击和第二次单击之间也要等待2秒。 我还试图滥用作为黑客来确认退出应用程序。这确实有效,但这是一个黑客。我只想让浓缩咖啡点击两次。 有什么建议如何使浓缩咖啡点击两次而不等待动画?

  • 但是,如果要单击RecycerView中的随机项怎么办?