作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我拥有的应用程序编写一些自动化脚本。我已经完成了 Robotium 网站上的教程,并对如何实现自动化有了基本的了解。但是,据我所知,我正在测试的应用程序是通过使用 android 层次结构查看器,我看到所有 View 都没有明确定义的 ID。
正如您从屏幕截图中看到的那样,在嵌套 View 上存在 View 。它们的 ID 读起来像 0x17e0 或 0x17de。我如何在 robotium 脚本中引用这些内容?最终结果是我试图让它甚至在其中一个文本切换器 View 上触发点击。到目前为止,如果我给它一个像素点去,或者如果我给它按钮中出现的文本,我只能让它工作(但文本是动态的并且会导致糟糕的测试)。
我是否必须使用 getCurrentViews() 来过滤文本切换器?或者我是否必须想出一种方法来遍历从 FrameLayout>RelativeLayout>FrameLayout>LinearLayout>TextSwitcher 开始的整个树?
如果我必须遍历整棵树,我该如何逐个查看?
最佳答案
虽然我无法让 ViewGroup() 和 getChildAt() 方法为我工作,但我最终做了一些不同的事情:
// Grabbing all the LinearLayout views found under view with with id of 'content'
ArrayList<LinearLayout> linearLayouts = solo.getCurrentViews(LinearLayout.class, solo.getView(R.id.content));
// The 4th item in the linearLayouts list is the one I need
View pickerList = linearLayouts.get(3);
// Grabbing the buttons in the pickerList
ArrayList<TextSwitcher> buttons = solo.getCurrentViews(TextSwitcher.class,pickerList);
// Now I can click on the buttons
solo.clickOnView(buttons.get(0));
我会说这很慢。第一次按钮点击触发大约需要 10 秒。但是一旦它飞起来。
关于java - 安卓测试 : What do to when nothing has an id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618031/
我是一名优秀的程序员,十分优秀!