Robotium ClickOnButton(int ID)方法导致“junit.framework.AssertionFailedError:索引为2131034130的按钮不可用!”

时间:2012-10-06 10:39:49

标签: android robotium

我正在使用robotium进行测试,无法弄清楚如何点击没有文字的按钮。 测试失败并带有跟踪:

  

junit.framework.AssertionFailedError:索引为2131034130的按钮不可用!

2 个答案:

答案 0 :(得分:13)

索引系统是出于黑盒测试的原因所以如果您知道要单击的视图的资源ID,可以使用solo.getView(R.id)来获取对象,然后使用{{1}点击它。

答案 1 :(得分:1)

我发现实际的方法参数不是ID,而是“index”,只要它意味着。所以我的解决方法是:

private void clickOnButtonByID(int ID) {
    // get a list of all ImageButtons on the current activity
    List<Button> btnList = solo.getCurrentButtons();
    for (int i = 0; i < btnList.size(); i++) {
        Button btn = btnList.get(i);
        // find button by id
        if (btn.getId() == ID) {
            // click on the button using index (not id !!!)
            solo.clickOnButton(i);
            // check if new activity is the 'About'
        } else {
            // other code
        }
    }
}