如何点击屏幕上的sikuli与java多次出现的图像?

时间:2016-07-04 13:49:46

标签: java testing automation sikuli gui-testing

我正在java中编写一些脚本自动化,它会搜索一些记录中的手机号码并在gridview中找到多个记录。在此旁边,我试图通过单击下载(多个)按钮下载所有录音。 我写了下面的代码但不起作用

public static Screen s = new Screen();
Iterator <Match> matches  =s.findAll("downloadbtn_wh.png"); // s is screen
Pattern pButton = new Pattern("downloadbtn_wh.png");

Match mButton;

while (matches.hasNext()) {
    Match m = matches.next(); // m now could be inspected with debugging
    s.click(m); // click on drop-down

    if ((mButton = s.exists(pButton))!=null) {
        // checks for button image and saves the match
        s.click(mButton); // just click the match, do not search again
        break;
    }
}

此脚本在单击第一个下载按钮后停止,但我希望它应该单击gridview中的每个下载按钮。 Images

2 个答案:

答案 0 :(得分:1)

以下代码将执行您所需的操作。

b funcname

注意:请注意,在上面的示例中,我实际上并未单击,而是仅突出显示检测到的模式,以便可视化该过程。在您的脚本中使用@Test public void multiplePattern() throws FindFailed{ ImagePath.setBundlePath("C:\\patterns\\"); Screen s = new Screen(); Iterator<Match> it = s.findAll("downloadArrow.png"); while(it.hasNext()){ it.next().highlight(1); } } 之前,只需将highlight(1)替换为click()

答案 1 :(得分:0)

Screen scn = new Screen();  
Iterator <Match> itr = scn.findAll("image");
{
    while(itr.hasNext())
    {
        itr.next().click();
    }
}