Robotium - 我们如何在活动中找到元素的确切索引

时间:2015-03-31 04:07:57

标签: android testing robotium black-box-testing

如果我们正在进行黑匣子测试,我会问这个问题 我已经研究了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?

Hierarchy Viewer from DDMS Hierarchy Viewer from SDK tool

2 个答案:

答案 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