首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Espresso从AutoCompleteTextView下拉列表中选择项

无法使用Espresso从AutoCompleteTextView下拉列表中选择项
EN

Stack Overflow用户
提问于 2018-09-01 06:43:57
回答 1查看 770关注 0票数 2

下面是我的AutoCompleteTextView下拉列表的快照,我试图从中选择第二项

My Espresso代码:

代码语言:javascript
复制
onView(withId(R.id.searchContainer)).check(matches(isDisplayed()));
onData(anything())
      .inAdapterView(withId(R.id.searchContainer))
      .atPosition(1)
      .perform(click());

但我得到的例外是:

代码语言:javascript
复制
android.support.test.espresso.PerformException: Error performing 'load adapter data' on view 'with id: com.sampleaddressdd.demo:id/searchContainer'

带有Espresso记录器的我得到以下代码:

代码语言:javascript
复制
DataInteraction appCompatTextView = onData(anything())
                .inAdapterView(childAtPosition(
                        withClassName(is("android.widget.PopupWindow$PopupBackgroundView")),
                        0))
                .atPosition(0);
        appCompatTextView.perform(click());

下拉充气程序代码:

代码语言:javascript
复制
        mSearchView = findViewById(R.id.textSearch);
        mSearchView.setDropDownAnchor(R.id.searchContainer);
        mHttpClient.fetchAddresss(new HttpClient.AddressCallback() {
            @Override
            public void run() {
                mAdapter = new AddressAdapter(MainActivity.this, mAddresss, new AddressAdapter.OnAddressClickCallback() {
                    @Override
                    public void execute(Address Address) {
                        startActivity(AddressProfileActivity.createIntent(MainActivity.this, Address));
                    }
                });
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mSearchView.setAdapter(mAdapter);
                    }
                });
            }
        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-23 11:59:50

最后,通过使用以下方法实现了这一点:

代码语言:javascript
复制
onView(withText(LOCATION_TO_BE_SEARCHED)) .inRoot(withDecorView(not(mActivityTestRule.getActivity().getWindow().getDecorView()))) .check(matches(isDisplayed())) .perform(click());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52125613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档