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

Espresso - typeText() not working correclty, sometimes letters are missing

我开始登录 activity 并在 Espresso 测试中使用:

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

我希望字段中的文本是 "USERNAME",但有时我会得到 "SERNAME",其他的 "UERNAME"。

大多数时候它可以工作,但有时会失败,特别是在重新启动 phone 之后。

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

测试 phone 使用 Swift 键盘并启用了双语输入。显然,这会导致 phone 启动后键盘的首次出现速度变慢,而且还会以一种奇怪的方式自动更正 Espresso 键入的单词的第一个字母。

解决方案:始终使用默认系统键盘测试device/emulator并确保启用软件键盘以避免this other issue.

您也可以尝试replaceText()。它应该不受慢速 IME 的影响:

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