Android:如何等待可见的EditText使用Espresso输入

时间:2018-11-16 16:47:45

标签: android android-espresso

我想对开头为visibility=gone的EditText进行输入。

我有一个带有ProgressBar可见且EditText消失的布局。经过一些后台操作后,我交换了两个小部件的可见状态。 ProgressBar隐藏,并显示EditText。

因此,当我运行此测试时:

class ExampleInstrumentedTest {

    private var mIdlingResource: IdlingResource? = null

    @Before
    fun registerIdlingResource() {
        val activityScenario = ActivityScenario.launch(MainActivity::class.java)
        activityScenario.onActivity {
            fun perform(activity: MainActivity) {
                mIdlingResource = activity
                // To prove that the test fails, omit this call:
                IdlingRegistry.getInstance().register(mIdlingResource!!)
            }
        }
    }

    @Test fun listGoesOverTheFold() {
        onView(withId(R.id.editText2)).perform(typeText("ABC"))
        onView(withId(R.id.btnSubmit)).check(matches(isEnabled()))
    }

    @After
    fun unregisterIdlingResource() {
        if (mIdlingResource != null) {
            IdlingRegistry.getInstance().unregister(mIdlingResource)
        }
    }
}

浓咖啡因以下原因而失败:

  

由于:java.lang.RuntimeException:将不会执行操作,因为目标视图与一个或多个不匹配。   以下限制:       ((在屏幕上显示给用户)和(支持输入法,或者可以从类中分配:android.widget.SearchView类)

这是我的活动:

private var mIdlingResource = CustomIdlingResource()

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    progressBar.visibility = View.VISIBLE
    mIdlingResource.setIdleState(false)
    BillingFormRepositoryService().load(object : BillingFormRepository.BillingFormCallback {
        override fun onSuccess(billingFormLoadedViewState: BillingFormLoadedViewState) {
            progressBar.visibility = View.GONE
            editText2.visibility = View.VISIBLE
            mIdlingResource.setIdleState(true)
        }
    })
}

0 个答案:

没有答案