【发布时间】:2018-03-30 11:27:39
【问题描述】:
使用 sdk 26 在 Android 设备上运行测试会导致测试失败,因为新的 Autofill 功能会在 espresso 尝试点击字段时隐藏字段。
我在 firebase 测试实验室运行我的测试,所以我无法在我的测试设备上手动禁用它们。
一些图片:
1。在点击用户名字段之前,密码是可见的。
2。单击用户名字段后,密码字段被此自动填充对话框隐藏:
3。登录后会显示另一个填充对话框:
Espresso 现在无法单击密码字段,因为自动填充对话框隐藏了我的字段和 fail。
使用AutofillManager#disableAutofillServices() 只会禁用#2。对话框,但 #3。还在。
如何在测试设备上禁用自动填充?
【问题讨论】:
-
每删除一个答案,设置 > 系统 > 高级 > 自动填充服务 > 设置为“无”。
-
@CommonsWare 我无法从诸如 firebase 之类的云端访问设备上的设置,我需要在测试运行之前从代码中禁用这些设置
-
对我来说(使用 Android 8.0.0),它位于设置 > 系统 > 语言和输入 > 高级 > 自动填充服务
-
你找到答案了吗?同样的问题
-
我不认为这是一种好的做法,您修改了生产代码以使其可测试,并且增加了可能失败的风险以及有关测试存在的知识,请记住这一点未来
标签: android testing android-espresso android-testing android-autofill-manager