浓缩咖啡 - typeText() 函数无法正常工作,有时会漏掉一些字母。

11

我开始我的登录活动,并在Espresso测试中使用:

onView(withId(R.id.username)).perform(typeText("USERNAME"));

我希望该字段中的文本为"USERNAME",但有时会变成"SERNAME"或"UERNAME"。

大多数情况下它能正常工作,但有时在手机重新启动后会出现故障。

以下是重现此错误的示例代码: https://github.com/neoranga55/CleanGUITestArchitecture

2个回答

10

测试手机使用启用双语打字的Swift键盘。显然,这会导致手机启动后键盘的首次出现较慢,并且Espresso输入的单词的第一个字母也会以奇怪的方式自动更正。

解决方案:始终在测试设备/模拟器上使用默认系统键盘,并确保启用软件键盘以避免其他问题


请查看ejboy的答案,这是一个很好的解决方法,除非您特别测试键盘输入。 - MG Developer

5

你也可以尝试使用replaceText()。它不应该受慢速输入法的影响:

onView(withId(R.id.username)).perform(replaceText("用户名"));


我尝试将其用于SearchView,但它会抛出以下异常: 在视图'id:id/search'上执行'replace text()'时出错。 - Varun A M
3
尽管这只是一个解决方法,但我还是给它点了赞。除非你正在测试键盘输入,否则没有理由不使用replaceText,它更快并可以解决上述问题。想法很好。 - MG Developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接