我有一个活动,显示一些文本,例如“ someText”。
通过此活动,我将打开一个警报对话框,如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Title");
String[] items = {"Hello", "World", "someText"};
builder.setItems(items, new MultiChoiceEventOnClickListener(...);
builder.setCancelable(true);
builder.show();
这是我的Robotium测试:
solo.clickOnButton(...); // to open the dialog alert
solo.waitForDialogToOpen();
solo.clickOnText("someText");
问题在于 Robotium 在警报对话框下的活动中找到了文本。 由于“ someText”可以在我的活动中的任何地方,因此我无法使用索引。
如何将文本搜索范围缩小到alertDialog
?
要么
如何在警报对话框的项目列表中找到查看项目?
答案 0 :(得分:3)
应该可以像这样手动搜索文本
ArrayList<View> views = solo.getCurrentViews();
for(View v : views) {
if (!v instanceof TextView) {
//filter out everything thats not a TextView
continue;
}
String text = ((TextView)v).getText().toString();
if (text.contains("sometext") {
//We found the view, click and then exit the loop.
solo.clickOnView(v);
break;
}
}
免责声明:由于我目前在计算机上未设置Android环境,因此无法验证