很不言自明。假设我有一个登录屏幕,但我不知道开发人员(我是 QA)将用户名和密码文本字段命名为什么。鉴于我们的应用程序中有数百个这样的字段,我不想每次需要这些信息时都打扰他。
有没有办法以编程方式列出活动屏幕上所有元素的标签或 ID?
谢谢。
很不言自明。假设我有一个登录屏幕,但我不知道开发人员(我是 QA)将用户名和密码文本字段命名为什么。鉴于我们的应用程序中有数百个这样的字段,我不想每次需要这些信息时都打扰他。
有没有办法以编程方式列出活动屏幕上所有元素的标签或 ID?
谢谢。
是的,您可以将 solo.getCurrentViews() 用于该方法或任何更具体的方法。从 api 看:
编辑:找到最新的文档:http ://robotium.googlecode.com/svn/doc/index.html
获取当前视图
public ArrayList getCurrentViews() 返回当前显示在焦点活动或对话框中的视图对象的 ArrayList。返回: 当前显示在焦点窗口中的 View 对象的 ArrayList
for( View v : solo.getCurrentViews()){
// do something with the View object here
int viewId = v.getId();
}
http://developer.android.com/reference/android/view/View.html
您可以从当前 Activity 中获取所有 R.id 和视图文本,例如:
ArrayList<View> views = solo.getCurrentViews();
for (View v : views) {
if (v.getId() != View.NO_ID) {
String id = v.getResources().getResourceName(v.getId()).replaceAll(":id/", ".R.id.");
Log.d("DEBUG", id);
}
if (v instanceof TextView) {
String text = ((TextView)v).getText().toString();
Log.d("DEBUG", text);
}
}
uiautomatorviewer 是列出所有出现在 android 屏幕中的 id 和文本的最佳选择。
1.直接去你的android-sdk/tools,你可以在那里找到它。
2.只需打开元素所在的屏幕,然后单击uiautomatorviewer中的快照按钮。您可以在此特定屏幕中查看元素的所有 id。
PS。稍后我将使用屏幕截图更新答案。