如何在uiautomator中检测抬头通知? [英] How to detect headsup notification in uiautomator?
本文介绍了如何在uiautomator中检测抬头通知?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将Nexus 5和Cyanogen One plus设备与Lollipop android操作系统配合使用.我正在尝试测试某些应用程序的各种通知.我可以使用UiAutomator成功测试纸盘通知和锁定屏幕通知,但是使用抬头通知无法成功.我尝试了以下代码,但无法检测到.
I am working with Nexus 5 and Cyanogen One plus devices with Lollipop android OS. I am trying to test various notifications of certain app. I was successfully able to test tray notification and lock screen notification with UiAutomator but I am not able to have any success with headsup notification. I tried following code but it failed to detect it.
public void test_HeadsupTitle() throws InterruptedException, UiObjectNotFoundException, IOException
{
//some code to bring up headsup notification
UiObject maxHeadsUp = new UiObject(new UiSelector().packageName("com.android.systemui").resourceId("android:id/status_bar_latest_event_content"));
// code to add sleep so that it waits for heads up notification to show up
assertTrue(maxHeadsUp.exists());
}
是否有一种方法可以将UiAutomator中的抬头通知检测为运行自动化时要查找的对象?
Is there a way to detect headsup notifications in UiAutomator as an object to look for when running automation?
推荐答案
@Before
public void setUp() throws Exception
{
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
}
@Test
public void testNoti() throws UiObjectNotFoundException
{
mDevice.openNotification();
mDevice.wait(Until.hasObject(By.pkg("com.android.systemui")), 10000);
/*
* access Notification Center through resource id, package name, class name.
* if you want to check resource id, package name or class name of the specific view
* in the screen, run 'uiautomatorviewer' from command.
*/
UiSelector notificationStackScroller = new UiSelector()
.packageName("com.android.systemui")
.className("android.view.ViewGroup")
.resourceId("com.android.systemui:id/notification_stack_scroller");
UiObject notificationStackScrollerUiObject = mDevice.findObject(notificationStackScroller);
assertTrue(notificationStackScrollerUiObject.exists());
/*
* access top notification in the center through parent
*/
UiObject notiSelectorUiObject = notificationStackScrollerUiObject.getChild(new UiSelector().index(0));
assertTrue(notiSelectorUiObject.exists());
notiSelectorUiObject.click();
}
这篇关于如何在uiautomator中检测抬头通知?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文