Ser*_*ici 76 android android-espresso
我正在尝试用新的android-test-kit(Espresso)编写一些测试.但我找不到任何关于如何检查对话框是否显示并在其上执行某些操作的信息(如单击正负按钮等).请注意,对话框也可以由a显示WebView,而不是由应用程序自己显示.
任何帮助,将不胜感激.我只需要一个链接,或基本的一些示例代码:
setCancelable(false)在对话框构建器上调用,我们要检查它)谢谢你的建议!
den*_*nys 111
要验证是否显示对话框,您只需检查是否显示带有对话框内文本的View:
onView(withText("dialogText")).check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)
或者,基于带有id的文本
onView(withId(R.id.myDialogTextId)).check(matches(allOf(withText(myDialogText), isDisplayed()));
Run Code Online (Sandbox Code Playgroud)单击对话框按钮执行此操作(按钮1 - 确定,按钮2 - 取消):
onView(withId(android.R.id.button1)).perform(click());
Run Code Online (Sandbox Code Playgroud)
UPDATE
kir*_*wka 58
我目前使用它,它似乎工作正常.
onView(withText(R.string.my_title))
.inRoot(isDialog()) // <---
.check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)
Lui*_*sto 25
如果您有这样的AlertDialog:
您可以检查组件是否显示:
int titleId = mActivityTestRule.getActivity().getResources()
.getIdentifier( "alertTitle", "id", "android" );
onView(withId(titleId))
.inRoot(isDialog())
.check(matches(withText(R.string.my_title)))
.check(matches(isDisplayed()));
onView(withId(android.R.id.text1))
.inRoot(isDialog())
.check(matches(withText(R.string.my_message)))
.check(matches(isDisplayed()));
onView(withId(android.R.id.button2))
.inRoot(isDialog())
.check(matches(withText(android.R.string.no)))
.check(matches(isDisplayed()));
onView(withId(android.R.id.button3))
.inRoot(isDialog())
.check(matches(withText(android.R.string.yes)))
.check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)
并执行一个动作:
onView(withId(android.R.id.button3)).perform(click());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48414 次 |
| 最近记录: |