Espresso - typeText()无法正常工作,有时字母丢失

Seb*_* LG 9 android android-espresso

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

onView(withId(R.id.username)).perform(typeText("USERNAME"));
Run Code Online (Sandbox Code Playgroud)

我希望该字段中的文本为"USERNAME",但有时我会收到"SERNAME",其他人会收到"UERNAME".

它大部分时间都可以工作但有时会失败,特别是在重启手机后.

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

Seb*_* LG 9

测试手机使用Swift键盘启用双语输入.显然这会导致电话启动后键盘的第一次出现变慢,但也会以一种奇怪的方式自动纠正Espresso键入的单词的第一个字母.

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


ejb*_*boy 5

你也可以尝试一下replaceText()。它不应受到慢速 IME 的影响:

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

  • 我赞成它,虽然这是一个解决方法,但这是一个很好的解决方法,除非您正在测试键盘输入,否则没有理由不使用replaceText,它更快并解决了上述问题。好想法。 (3认同)