Espresso:单击 ListView 页脚中按钮的操作

Posted

技术标签:

【中文标题】Espresso:单击 ListView 页脚中按钮的操作【英文标题】:Espresso: Click action on button in ListView footer 【发布时间】:2016-12-03 19:13:37 【问题描述】:

ListView 有这样的页脚(footer.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_
                android:layout_>

    <Button
        android:id="@+id/btn_cancel"
        style="@style/MyApp.Form.Component.Button"
        android:text="@string/action_cancel"/>

    <Button
        android:id="@+id/btn_confirm"
        style="@style/MyApp.Form.Component.Button"
        android:text="@string/action_next"/>
</RelativeLayout>

在录制脚本时(通过 Android Studio 中的“Record Espresso Test”),我收到以下代码以单击“下一步”按钮:

private void clickNext() 
    ViewInteraction appCompatButton2 = onView(
            allOf(withId(R.id.btn_confirm), withText("Next"),
                    withParent(childAtPosition(
                            withId(R.id.lv_products), 5))));
    appCompatButton2.perform(click());

效果很好,但是...在低分辨率设备上运行测试时出现错误:

android.support.test.espresso.PerformException:执行错误 '单击'视图'(带有ID: com.comarch.msc.emulator:id/btn_confirm 和文本:是“下一步”和 有父匹配:在父级中位置 5 的子级,ID: com.comarch.msc.emulator:id/lv_products)'。 (...) 原因: java.lang.RuntimeException:将不会执行操作,因为 目标视图与以下一项或多项约束不匹配: 至少 90% 的视图区域会显示给用户。

如何自定义低分辨率测试?

【问题讨论】:

Click on not fully visible imageButton with Espresso的可能重复 【参考方案1】:

问题是整个页脚没有显示在屏幕上(如果显示则只是部分)。在单击按钮之前,您可以尝试执行swipeUp 操作。或者,如果滑动没有帮助,只需检查为什么您在较小的屏幕上看不到它。

【讨论】:

以上是关于Espresso:单击 ListView 页脚中按钮的操作的主要内容,如果未能解决你的问题,请参考以下文章

QML:使用 ListView.OverlayFooter 时页脚中的按钮无响应

单击离子页脚中的按钮首先不执行(单击)功能

在 Gridview 的页脚中访问链接按钮单击事件

Bootstrap 3 - 页脚中的链接在移动版本上不起作用

Espresso - 如何定位并单击ListView中的第一个项目

Android Espresso ListView 点击项