0

如果我们正在进行黑盒测试,我会问这个问题。
我研究了 Robotium 几天。我是从网上自学的。
我还写了一些简单的测试用例并成功运行。但是当我搜索索引元素时(例如:一个 Edittext,我必须尝试按索引形式从 0 到 x 进行索引并获得我期望的索引 id)。
我们能不能用另一种方法来获取表单名称,我有 ID 名称(txtEd1,btnLogin...),我们可以在白盒测试中从 R 类访问它,但在这种情况下我只是询问黑盒。
那么我们能否有另一种方法通过 id 获取元素,或者我们如何获取活动中元素的准确索引号。
我还使用 DDMS 和 SDK 工具中的 Hierarchy Viewer 来获取索引 ID,但它不起作用。

TextView tw = (TextView) solo.getText(<index>); << how can get exact index number?

来自 DDMS 的层次结构查看器 来自 SDK 工具的层次结构查看器

4

2 回答 2

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
    } 
}
于 2015-03-31T12:58:25.617 回答
1

我目前正在使用大气框架。使用此框架,您可以通过创建选择器来选择元素:资源 ID、索引、内容描述、文本等。您也可以通过 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);  
...

你可以在这里找到更多好的例子。

于 2016-11-14T16:24:36.753 回答