如何使用Robotium单击微调器中的第一个项目?

时间:2012-06-06 19:41:16

标签: android spinner robotium

我在微调器中向上滚动以选择Robotium测试用例中的第一项时遇到问题。这是我的代码:

int pos = solo.getCurrentSpinners().get(0).getSelectedItemPosition();
solo.pressSpinnerItem(0, 0 - pos);
当我调试时,

pos是1,但Robotium仍然在索引1上按下微调器,即使我命令它按-1。我做错了什么?

由于 马库斯

3 个答案:

答案 0 :(得分:9)

他们现在似乎把这些课程拿出来了。刚刚遇到这个问题,但找到了一种方法来正确地做到这一点。

// 0 is the first spinner in the layout
View view1 = solo.getView(Spinner.class, 0);
solo.clickOnView(view1);
solo.scrollToTop(); // I put this in here so that it always keeps the list at start
// select the 10th item in the spinner
solo.clickOnView(solo.getView(TextView.class, 10)); 

答案 1 :(得分:-1)

你能够获得视图并调用点击它吗?

solo.getCurrentSpinners().get(0).performClick()

答案 2 :(得分:-1)

与Robotium一起使用的API相当不稳定,所以我决定沿着直接API路线前进:

instrumentation.runOnMainSync(new Runnable() {
    @Override
    public void run() {
        Spinner spinner = (Spinner) solo.getView(resourceId);
        spinner.setSelection(position, true);
    }
});

这不会显示Spinner的弹出窗口,但会选择所需的项目。