TouchUtils clickView点击了错误的视图

时间:2013-07-02 21:48:48

标签: android android-testing

我正在尝试使用TouchUtils.clickView()导航到我应用测试中的另一个屏幕。对clickView的调用始终会点击错误的视图:

public void navigateToWorkout(int i) {
    mMonitor = mWorkout.setMonitor(mInstrumentation);
    final LinearLayout clickme = (LinearLayout) mWorkouts.getChildAt(i);
    pc.runOnUiThread(
        new Runnable(){
            public void run(){
                clickme.setBackgroundColor(Color.CYAN);
            }
        }
    );
    try { Thread.sleep(500); } catch (Exception e) {}
    TouchUtils.clickView(MyApplicationTest.this, clickme);
    mWorkout.getFromMonitor(mMonitor);
}

它会在LinearLayout青色中转换正确的项目(ListView),然后半小时后,对clickView的调用会在EditText上生成点击事件焦点(由EditText中的可见闪光指示。)

如果我只是单击模拟器中新的CYANed ListView项,则测试将再次开始工作,直到下次尝试通过单击ListView项目导航到另一个屏幕为止。然后,再次点击EditText焦点并卡住,除非我手动点击该项目。

自从我将这个项目从我的旧桌面导入我的新笔记本电脑以来已经工作了好几个月之后,这个都没有用。我希望我可以将两者并排比较,但是旧台式机死于可怕的死亡,这促使我转而使用笔记本电脑进行开发。

我可以为OnClick处理程序或我尝试调用的视图提供更多代码,但只要我手动添加几个点击该应用就可以了。我的所有麻烦都在于测试。我一直坚持尝试做这项工作,并愿意尝试任何建议。

1 个答案:

答案 0 :(得分:0)

在AndroidManifest.xml中添加min和max目标SDK对我有用;我从this answerI elaborated on)得到了这个想法。在正在测试的项目中(不是测试项目),我将以下行添加到AndroidManifest.xml:

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/>

我对TouchUtils的所有使用开始再次表现一致;没有更烦人的解决方法!