Ans*_*oid 3 android android-uiautomator
我想实现这样的目标。
打开 Gmail 应用程序,查找特定邮件(同时滚动)并单击它。
在下面的方法中,我可以搜索特定邮件并单击它。
public void openMailWithParticularTitle(){
UiObject2 obj = Utils.getDeviceInstance().findObject(By.res("com.google.android.gm:id/recycler_list_view"));
List<UiObject2> mails = obj.findObjects(By.clazz("android.view.View"));
for(int i =0; i<mails.size();i++){
if(mails.get(i).getContentDescription()!=null && mails.get(i).getContentDescription().contains("My Mail Link")){
mails.get(i).click();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它只查找可见项目,不会滚动查找子元素。
所以我环顾四周并尝试了这个,但由于某些原因这似乎也不起作用。
public void scrollMailWithParticularTitle2() throws UiObjectNotFoundException {
openApp(Const.package_gmail_app,true);
UiScrollable settingsItem = new UiScrollable(new UiSelector()
.className("android.support.v7.widget.RecyclerView"));
UiObject about = settingsItem.getChildByText(new UiSelector()
.className("android.view.View"), "My Mail Link");
about.click();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助/建议将不胜感激。(我对UI测试的了解有限)
尝试使用scrollIntoView函数:
执行向前滚动操作以在可滚动布局元素中移动,直到找到与选择器匹配的可见项目
我用它一次在应用程序菜单中找到我的应用程序:
UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject allAppsButton = mDevice.findObject(new UiSelector().description("Apps"));
allAppsButton.clickAndWaitForNewWindow();
UiScrollable appView = new UiScrollable(new UiSelector().scrollable(true));
appView.scrollIntoView(new UiSelector().text(APP_TITLE));
mDevice.findObject(new UiSelector().text(APP_TITLE)).clickAndWaitForNewWindow();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9943 次 |
| 最近记录: |