如何使用Java代码和Sikuli单击菜单项

时间:2012-08-07 14:00:16

标签: java sikuli

我有一个应用程序,我需要能够注销,唯一的方法是单击下拉菜单中的“注销”选项,但是我遇到了很多问题。

我使用Sikuli IDE捕获了屏幕截图,当我从IDE运行我的代码时,它工作得很好。 (代码单击“菜单”,然后“注销”)

但是,当我尝试从Java运行代码时,它似乎选择了Menu,然后当它尝试单击Log out时,菜单消失。

我的猜测是,由于某些原因,Java在将鼠标移动到“注销”按钮之前将注意力集中在鼠标上,当焦点转到鼠标时,菜单会在您点击其他位置时消失。

我也试过让Sikuli多次按下向下按钮退出,但尝试时会发生同样的事情:菜单消失了。

这是我的Java代码。 Sikuli代码具有相同的两个单击命令:

@Override
   public void logout()
   {
      click("loggedInIndicator.png");
      click("logoutButton.png");
   }

请帮忙!没有其他方法可以注销我能找到的。

1 个答案:

答案 0 :(得分:0)

我建议你打印图像Sikuli发现是元素的最佳匹配。我的猜测是它选择了一个与你想要点击的元素无关的屏幕的一部分,使菜单消失。

Match element = region.find("loggedInIndicator.png")
Screen screen = element.getScreen()
String imagePath = screen.capture(element)

这将保存Sikuli在System临时目录中找到的元素的图像。由于它是一个临时文件,您当然必须将新创建的映像文件移动到另一个目录,以便不会立即删除它。我在Windows上发现了这种情况