当前位置: 首页 > 知识库问答 >
问题:

在Espresso-Android中,当应用程序不空闲时强制执行

松和璧
2023-03-14

我如何“强制”Espresso执行一个动作(单击取消),即使应用程序没有空闲?

共有1个答案

贺俊杰
2023-03-14

老实跟你说,我认为这是不可能的。我也有同样的问题。我通过使用UIAutomator单击取消按钮(在您的例子中)来修复它。

在我的例子中,我有一个登录按钮,之后有一个地图。在登录按钮之后,应用程序从来不会空闲,甚至只是在MapFragment中(浓缩咖啡的问题),所以我不得不使用UIAutomator进行登录按钮,并检查登录后地图是否出现。

我在应用程序的依赖项中弹出了这个:

androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
import androidx.test.uiautomator.*
//your imports here

@RunWith(AndroidJUnit4::class)
@LargeTest
class LoginTest {
    @Rule
    @JvmField
    //your rules here
    lateinit var mDevice:UiDevice


    @Before
    fun setUp() {
        //your setUp stuff
        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())

    }

    @Test
    fun checkLogin(){
        onView(withId(R.id.loginBtn)).perform(click())   //goes to LoginFragment

        mDevice.findObject(UiSelector().text("LOGIN")).click()   //clicks login button
        //this is where I had to use the UIAutomator because espresso would never be
        //idle after the login button

        mDevice.wait(Until.findObject(By.text("YOU HAVE LOGGED IN")),15000)
        //this waits until the object with the given text appears, max. wait time is 15 seconds
        //as espresso would still not be idle, I had to check if the login was successful 
        //with (again) the help of UIAutomator
    }

    @After
    fun tearDown() {

    }

}
 类似资料:
  • 我正在开发一个将在Kiosk模式下运行的应用程序。在这个应用程序中,如果用户在5分钟内没有在应用程序中做任何事情,应用程序将显示一个屏幕保护程序,这是应用程序的徽标。 我的问题是,如何在5分钟内检测到空闲代码?

  • 我想实现什么: 用户不活动3分钟后,我想显示一个新的活动。 研究: 我确实在Stackoverflow上查找了这个问题,我发现了一些提示,说明如何使用后台线程执行此操作,创建注册最后一次触摸的基本活动等。 问题: 如果我有超过 20 个活动,则表示 20 个活动,并且我不想从基本活动扩展所有活动。这意味着每次我创建一个新活动时,我都需要扩展这个基础活动,如果我的活动已经从其他一些基础活动扩展,这可

  • 我已经将我的应用程序升级到了API 26,我面临着一些新的后台执行限制问题。 在Oreo设备上,只要我的应用程序进入后台,我的应用程序就会因日志中写入的空闲状态而被操作系统停止: 然后,我尝试再次启动我的应用程序,最后一个活动被正确还原(包括其片段和所有显示的数据) 问题是我的服务没有重新启动。 它们都在onstart命令中返回START_STICKY,该命令应该告诉操作系统,服务在被终止后应该重

  • 如果按照步骤设置强制停止应用程序-

  • 我有一个应用在谷歌Play商店。当一个更新版本可用时,旧版本将变得不可用--也就是说,如果用户不更新app,他们就不在app中进入。当新版本可用时,我如何强制用户更新应用程序?

  • 我已经安装了Debian 8并且安装了Android Studio没有问题,但是当我运行我的应用程序时,当我在Ubuntu 15.04上使用Android Studio时创建的,我有以下错误: 这是什么样的错误?我如何解决? 谢谢你,丹尼斯