如何使用带有 java 的 sikuli 单击在屏幕上多次出现的某些图像?
How to click on some image which occurs multiple times on screen with sikuli with java?
我正在 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
下面的代码将执行您的要求。
@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()
。
Screen scn = new Screen();
Iterator <Match> itr = scn.findAll("image");
{
while(itr.hasNext())
{
itr.next().click();
}
}
我正在 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
下面的代码将执行您的要求。
@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()
。
Screen scn = new Screen();
Iterator <Match> itr = scn.findAll("image");
{
while(itr.hasNext())
{
itr.next().click();
}
}