测试在本地 AS 模拟器上通过,但在 Firebase 测试实验室上失败

奥娜·霍瓦斯

我有以下一段代码:

  • 单击 Firefox 应用程序中的切换按钮
  • 切换开关从系统设置中打开默认应用程序菜单
  • 我打开浏览器列表,选择我的浏览器并按返回返回应用程序。

这部分在我的本地 Android Studio 模拟器和真实设备上运行良好,但是当我在 Firebase 测试实验室上使用相同的虚拟设备配置运行它时:Pixel 2 API 28,它不会检测到“浏览器应用程序”文本并失败。

任何想法为什么它在 Firebase 虚拟设备上的行为不同?

fun selectDefaultBrowser() {
        clickSetDefaultBrowserToggle()
        mDevice.waitNotNull(
               Until.findObject(By.text("Browser app")),
               TestAssetHelper.waitingTime
            )
         assertAndroidSettingsPackage()
         defaultBrowserAppList().waitForExists(waitingTime)
         defaultBrowserAppList().clickAndWaitForNewWindow()
         fenixDebugOption().click()
         mDevice.pressBack()
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                mDevice.pressBack()
         }
     }

    fun clickSetDefaultBrowserToggle() =
        setDefaultBrowserToggle().clickAndWaitForNewWindow()

    fun setDefaultBrowserToggle() = mDevice.findObject(
          UiSelector().resourceId("org.mozilla.fenix.debug:id/switch_widget")
    )

    fun defaultBrowserAppList() = mDevice.findObject(
       (UiSelector()
           .className("android.widget.TextView"))
           .resourceId("android:id/title")
           .text("Browser app")
    )

    fun assertAndroidSettingsPackage() = assertTrue(
        mDevice.findObject(
            (UiSelector().packageName("com.android.settings"))
        ).waitForExists(waitingTime)
    )

    fun fenixDebugOption() = mDevice.findObject(UiSelector().text("Firefox Preview"))```

奥娜·霍瓦斯

找到罪魁祸首了 这还不够: fun defaultBrowserAppList() = mDevice.findObject((UiSelector().text("Browser app")). 由于某种原因,它与文本不匹配。

应该用 UiSelector().textContains("Browser app") 替换,然后它就可以工作了(忽略大写/非大写)。同样适用于: mDevice.findObject(UiSelector().textContains("Firefox Preview"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Firebase测试实验室测试APNS

Firebase设备测试实验室:无法创建测试矩阵

Firebase测试实验室CI上传APK

从CLI测试后如何获取gcloud Firebase测试实验室Android Espresso结果?

Firebase应用程序在Firebase测试实验室中被Android OS杀死

Google Firebase测试实验室,兼容性测试

如何在Firebase测试实验室中执行指定的测试套件类

通过Android Studio使用Firebase测试实验室时如何指定超时

Google地图未在Firebase测试实验室中显示

Firebase测试实验室上的测试运行失败

Robo脚本不适用于Firebase测试实验室中的Robo测试

Android Firebase测试实验室-使用Orchestrator进行仪器测试,其目的是什么?

测试前如何在Firebase测试实验室中执行adb命令

使用ProGuard + Dagger时,Firebase测试实验室失败

Firebase测试实验室视频帧速率对于仪器测试而言太低

测试实验室的仪器测试失败,货币符号错误

Firebase测试实验室是否支持XCUITests?

无法在要在Firebase测试实验室上运行的Espresso脚本中找到检测不同设备的相机按钮的解决方案

如何通过Firebase功能测试连接Firestore模拟器?

防止Firebase测试实验室点击广告

使用Firebase测试实验室对Android库执行仪表化测试?

java.lang.NoClassDefFoundError:在Firebase测试实验室上运行记录的Robo测试时,Landroid / support / v7 / widget / RecyclerView的解析失败

Firebase测试实验室。GameLoop-标记测试完成对IOS不起作用

使用Firebase测试实验室时,如何将仿真器的ABI指定为x86_64?

Firebase 测试实验室可以运行 Monkeyrunner 测试吗?

Iabhelper 在某些设备上的 Firebase 测试实验室中崩溃

Firebase 测试实验室对 Appium 的支持

如何检测在 iOS 上的 Firebase 测试实验室中运行的应用程序?

Firebase 测试实验室使用相同的上传 APK 重新运行测试