fun isKeyboardShown(): Boolean {
val inputMethodManager = InstrumentationRegistry.getInstrumentation().targetContext.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
return inputMethodManager.isAcceptingText
}
//make sure keyboard is visible by clicking on an edit text component
ViewInteraction v = onView(withId(R.id.editText));
ViewInteraction v2 = onView(withId(R.id.componentVisibleBeforeKeyboardIsShown));
v2.check(matches(isDisplayed()));
v.perform(click());
//add a small delay because of the showing keyboard animation
SystemClock.sleep(500);
v2.check(matches(not(isDisplayed())));
hideKeyboardMethod();
//add a small delay because of the hiding keyboard animation
SystemClock.sleep(500);
v2.check(matches(isDisplayed()));
6条答案
按热度按时间zysjyyx41#
我知道,这个问题已经很老了,但是它没有任何公认的答案。在我们的UI测试中,我们使用这个方法,它使用了一些shell命令:
Hope这对某人有用
4ioopgfo2#
发现于Google groups
rqmkfv5c3#
另一个技巧可以是检查一个视图的可见性,你知道当键盘显示时会被覆盖。不要忘记考虑动画...
使用espresso和hamcrest对NOT matcher进行仪器测试,例如:
2lpgd9684#
这对我有用。
@igork的答案的Java版本。
e0uiprwp5#
这个方法对我很有效
6pp0gazn6#