android - 使用 Espresso 2.2.2 的 ImmersiveModeConfirmation

标签 android junit4 android-espresso android-junit

由于沉浸模式确认弹出窗口(此处显示:https://developer.android.com/training/system-ui/immersive.html),Google 云测试服务器上的一些虚拟设备似乎无法正确执行测试 - 有没有办法使用 Espresso 自动关闭该弹出窗口?基本上我的代码可以在本地模拟器中运行,但不能在谷歌云服务器上运行。 这就是失败的原因:

View v = activity.getWindow().getDecorView();
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

最佳答案

我已经使用类似版本的@paul-t 解决了这个问题。启动模拟器后,运行下一个命令:

adb shell settings put secure immersive_mode_confirmations confirmed

之后您可以执行 Espresso 测试。

灵感:http://sviatoslavdev.blogspot.com/2018/02/adb-setings-secure.html

关于android - 使用 Espresso 2.2.2 的 ImmersiveModeConfirmation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357872/

相关文章:

android - 我无法使用 Espresso 单击复选框

java - 多个充气机上的 ViewHolder

java - 进行 HTTP 调用时显示以下堆栈跟踪

android - 三星手机和 Notification.FLAG_INSISTENT 错误?

java - Netbeans/插件更新和奇怪的行为

android - Proguard 问题 Roboguice 重复导入

android - 如何屏蔽 EditText 以显示 dd/mm/yyyy 日期格式

java - 为什么我的 Java 单元测试结果将预期结果与内存位置进行比较?

java - @Before、@BeforeClass、@BeforeEach 和 @BeforeAll 之间的区别

android - 使用 ExpandableListView 进行 Espresso 测试