安卓 Espresso : DatePicker Click on OK add a year instead of validate

标签 android datepicker android-espresso

在 Google Espresso 测试中,我试图点击 DatePickerDialog 的 OK 按钮。

但它并没有验证我的输入,它只是增加了一年并且不会关闭对话框。

点击似乎是在年份列的“+”按钮上完成的。这是 Espresso 错误还是我遗漏了什么?

这是我的 Espresso 代码(在 Kotlin 中):

onView(allOf(iz(instanceOf(javaClass<Button>())), withText("OK"),
            isDisplayed()) as Matcher<View>).perform(click())

最佳答案

它可能并不完美(因为我对文本“OK”进行了硬编码),但我设法在我的测试中使用以下代码 fragment 做到了这一点:

// Change the date of the DatePicker. Don't use "withId" as at runtime Android shares the DatePicker id between several sub-elements
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(1989, 8, 25));
// Click on the "OK" button to confirm and close the dialog
onView(withText("OK")).perform(click());

关于安卓 Espresso : DatePicker Click on OK add a year instead of validate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30597680/

相关文章:

android - Xamarin Forms(Android) - 升级和降级订阅

android - 设备锁定时强制关闭,旋转并再次解锁

angularjs - 如何在一个页面上至少有两个 ui-bootstrap 的日期选择器?

android - espresso - 如何为自定义测试运行程序声明路径

java - 在 Android 7.0 上运行 UiAutomator2 的问题

android - 我们可以在Android中编写代码以使用多个指纹打开不同的应用程序吗?

java - 是否可以使用 jhipster 开发移动应用程序?

javascript - AngularJS - ng-grid - 日期列问题

Angular Material io MatDatePicker

android - 在测试用例 Espresso 之前清除数据库