listView具有这样的页脚(footer.xml):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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中的"记录咖啡测试")我收到以下代码以单击按钮'Next':
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:错误执行 "单击" on View"'(带有ID: com.comarch.msc.msc.emulator:id/btn_confirm,带有文本:是" next"和 有父母匹配:父母在父母的位置5的孩子: com.comarch.msc.msc.emulator:id/lv_products'。(...)由: java.lang.runtimeException:不会执行操作,因为 目标视图与以下一个或多个约束不匹配: 视图区域的至少90%显示给用户。
如何自定义较低分辨率的测试?
问题是整个页脚没有在屏幕上显示(如果显示为一部分)。您可以在单击按钮之前尝试执行滑动操作。或者,如果滑动没有帮助,请检查为什么您在较小的屏幕上没有看到它。