我剛剛開始使用Robotium並嘗試了第一個非常簡單的測試,但遇到了一些我無法解釋的問題/對我來說似乎並不合邏輯。Robotium測試失敗:junit.framework.AssertionFailedError:無法單擊視圖!
我有一個TabHost與一個ActivityGroup和切換按鈕上顯示在tabhost內容部分中的每個活動。當我按下切換按鈕時,標籤內容區域變爲另一個活動(mTabHost.setCurrentTab(Intent intent);)。每個活動都有一個這樣的切換按鈕,總是帶有「切換」標籤。當我點擊秒活動上的切換按鈕時,它將切換回第一個(全部在標籤內容區域內)。
|-----------------|
| TabHost | |
|-----------------|
| |
| Toggle-Button |
| |
| (ActivityGroup: |
| Activities |
| change in here) |
| |
|-----------------|
現在,手動這一切工作正常,但robotium測試沒有。當我嘗試點擊第二個活動的切換按鈕時,出現錯誤消息「junit.framework.AssertionFailedError:View can not be clicked!」
這是我的測試 - 非常簡單和小:
solo.sleep(5000);
solo.waitForActivity("StartTabsActivity", 10000);
solo.clickOnButton("Toggle");
// this will swap the activity inside the tabhost content section
solo.sleep(5000);
solo.waitForActivity("StatusListActivity", 5000);
solo.assertCurrentActivity("Expected StatusList activity", "StatusListActivity");
LogUtils.logD("robotium: button label: " + solo.getButton(1).getText());
// ... outputs: robotium: button label: Toggle
LogUtils.logD("robotium: button clickable: " + solo.getButton(1).isClickable());
// ... outputs: robotium: button clickable: true
solo.clickOnButton("Toggle");
// ... throws: junit.framework.AssertionFailedError: View can not be clicked!
什麼我不明白這裏:我檢查,與「切換」按鈕標籤存在並且是可點擊的,不過,我m出現錯誤,提示「此視圖無法點擊」。當前活動中只有一個「切換」按鈕。
與此相關的問題,我有另一個小一個: 當我與TabHost +的ActivityGroup工作,將「solo.getCurrentActivity()」總是返回的ActivityGroup的嵌入式活動,而不是外一個?單獨仍然可以訪問外部活動的元素? 在我上面的例子中,切換按鈕始終是內部/嵌入式活動的一部分 - 在這裏很重要。
這是一種替代方法用instumentation點擊按鈕。 http://chanakaudaya.wordpress。com/2012/03/31/robotium-button-click-not-working-solution/ – 2012-03-31 15:14:50