Я только начал работать с Robotium и попробовал первый очень простой тест, но у меня возникла проблема, которую я не могу объяснить / мне не кажется логичной.
У меня есть TabHost с ActivityGroup икнопка переключения на каждом действии, которое отображается в разделе содержимого вкладки.Когда я нажимаю кнопку переключения, область содержимого вкладки меняется на другое действие (mTabHost.setCurrentTab (намерение);).Каждое действие имеет такую кнопку переключения, всегда с меткой «Переключить».Когда я нажимаю кнопку переключения для секундного действия, оно переключается обратно на первое (все внутри области содержимого вкладки).
|-----------------|
| TabHost | |
|-----------------|
| |
| Toggle-Button |
| |
| (ActivityGroup: |
| Activities |
| change in here) |
| |
|-----------------|
Теперь вручную все это работает нормально, но тест robotium не 'т.Когда я пытаюсь нажать кнопку переключения на втором упражнении, я получаю сообщение об ошибке «junit.framework.AssertionFailedError: View не может быть нажата!»
Это мой тест - очень простой и маленький:
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!
Чего я здесь не понимаю: я проверяю, что кнопка с меткой «Переключить» существует и доступна для нажатия, тем не менее, я получаю сообщение об ошибке «Это представление невозможно щелкнуть.».И есть только одна кнопка «Переключить» в соответствующем текущем действии.
В связи с этим вопросом у меня есть еще один незначительный момент: когда я работаю с TabHost + ActivityGroup, всегда будет «solo.getCurrentActivity ()»вернуть встроенную активность ActivityGroup, а не внешнюю?Может ли соло по-прежнему получать доступ к элементам внешней деятельности?В моем случае выше кнопка переключения всегда является частью внутреннего / встроенного действия - в случае, если это имеет значение здесь.