如果我们正在进行黑匣子测试,我会问这个问题
我已经研究了Robotium几天了。我自己从互联网上学习
我还写了一些简单的测试用例并成功运行它。但是当我搜索索引元素时(例如:一个Edittext,我必须通过索引形式0来尝试索引到x并得到我期望的索引ID)。
我们可以有另一种方式来获取表单名称,我有ID名称(txtEd1,btnLogin ...),我们可以在白盒测试中从R类访问它,但我只是问这个案例中的黑盒子。 />
那么我们可以有另一种方法来获取id的元素,或者我们如何获得活动中元素的精确索引号
我还使用DDMS和SDK工具中的层次结构查看器来获取索引ID,但它没有用。
TextView tw = (TextView) solo.getText(<index>); << how can get exact index number?
答案 0 :(得分:1)
你可以尝试另一种方式循环你的观点并找到合适的观点。 首先,您需要获取所有视图,然后按如下所示循环:
views = solo.getCurrentViews();
for (int i = 0; i < views.size(); i++) {
if (views.get(i).getClass().getName().equals("android.widget.TextView")) {
tw = (TextView) views.get(i); //DO-YOUR-CHECK-BLABLABLA
}
}
答案 1 :(得分:1)
我目前正在使用atmosphere框架。使用此框架,您可以通过创建选择器来选择元素:resource-id,index,content description,text等。您还可以通过Css / xPath查询选择元素。例如:
...
UiElementSelector selector = new UiElementSelector();
selector.addSelectionAttribute(CssAttribute.INDEX, "your index");
screen.waitForElementExists(selector, WAIT_FOR_ELEMENT_EXISTS_TIMEOUT);
UiElement targetElement = screen.getElements(selector).get(0);
...
您可以找到更多优秀示例here。