无法使用浓缩咖啡在编辑文本对话框中键入文本



我正在使用UiAutomator的Espresso编写一个自动化测试,并试图在id为"R.id.message"的editText对话框中设置文本。编辑文本对话框

我尝试了我在互联网上看到的一切,除了从层次结构视图中获取字面id并按原样书写外,没有任何效果:UiAutomatorUtil.findUiObjectById(16908291).setText("1234");

显然,这不是一个解决方案,所以我试图了解如何自动将文本插入到给定的视图中。

视图以前没有文本,因此使用withText/findUiObjectByText不是可选的。

我也尝试过onView(ViewMatchers.withId(R.id.message)).inRoot(isDialog()).perform(typeText("1234"));和一些类似的替代方案,但它总是无法工作(没有错误,测试照常进行,但不会键入文本(

此外,当打开对话框时,文本字段已经聚焦,因此如果可能的话,只写文本而不选择视图的解决方案也是可选的。

我不知道我还能做些什么才能让它发挥作用。请帮忙吗?

由于测试可以毫无错误地继续,并且您还提到文本视图已经聚焦,因此请尝试键入TextIntoFocusedView:

onView(withId(R.id.message)).inRoot(isDialog()).perform(typeTextIntoFocusedView("1234"));

typeText在开始发送关键事件之前,总是对可编辑字段执行简单的点击以获得焦点,有时当视图已经聚焦时,点击会导致不希望的行为。

最新更新