我有一个独特的情况。我正在使用Robotium测试应用程序,我在“黑匣子”条件下进行此操作。在我的测试中,我有一个标题为“全部”的标签,它位于屏幕的顶部,我想测试一下,点击它时,列出了所有可用的项目。但是,会发生什么,而不是单击“全部”选项卡,正在点击标题为“高级呼叫管理器”的应用程序。我认为这是因为'all'是'call'的一部分,由于Robotium的工作方式,它点击'all',即使它是'call'的一部分。查看我的代码后,您可能会了解我的问题。
所以我的问题是:
有没有办法“重置”Robotium,这样当它搜索文本时,它会从页面顶部开始?这是我的代码:
solo.waitForText("all");
bw.write("Verify presence of 'all' filter on " + BUSINESS + "-COMMUNICATION page\",\"");
if(solo.searchText("all")==false){
bw.write("FAILED \",\" \'all\' filter not found \"\n\"");
}else if(solo.searchText("all")==true){
bw.write("PASSED \",\" \'all\' filter present\"\n\"");
bw.write("Verify functionality of 'all' filter\",\"");
solo.clickOnText("all");
solo.sleep(5000);
solo.takeScreenshot();
bw.write("Screenshot taken\",\"" +"See photo: "+ photoFormat.format(new Date()).toString()+"\"\n\"");
}
任何帮助将不胜感激!
答案 0 :(得分:0)
传递给solo.clickOnText()的字符串实际上是一个RegEx。所以我认为你可以通过传递一个匹配'all'而不是'call'的RegEx来解决你的问题。
答案 1 :(得分:0)
ViewGroup class will be helpful in this case as you are using tabs in your code.Now find the view using getChildAt() method.
ViewGroup tabs = (ViewGroup) solo.getView(android.R.id.tabs);
View viewYouWantToDoStuffWith = tabs.getChildAt(x); //change x to the index you want.
Now you can perform the click event on tab like below.
solo.clickOnView(viewYouWantToDoStuffWith);