“重置”Robotium searchText

时间:2012-07-03 21:33:16

标签: android testing junit automation robotium

我有一个独特的情况。我正在使用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\"");


        }

任何帮助将不胜感激!

2 个答案:

答案 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);