Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sikuli java、second click()问题等等_Java_Sikuli - Fatal编程技术网

sikuli java、second click()问题等等

sikuli java、second click()问题等等,java,sikuli,Java,Sikuli,我的代码非常简单。。。 我用 这是一个重复的过程 它总是单击第一个图像,但从不单击第二个图像。如果我翻转它,它仍然会单击第一个图像,因为它可以识别两个图像,但不会单击第二个图像 单击的意思是,它不会将鼠标移动到第二个图像并单击。悬停不工作,鼠标移动不工作,悬停和鼠标单击不工作 这就好像windows在第一个命令后阻止了任何鼠标移动 我已经把打印屏幕,它通过所有的命令,做我输入的每一个代码,除了鼠标移动/点击机器人或sikuli 有什么帮助吗?是windows设置还是其他设置? 在这方面我已经研究

我的代码非常简单。。。 我用

这是一个重复的过程

它总是单击第一个图像,但从不单击第二个图像。如果我翻转它,它仍然会单击第一个图像,因为它可以识别两个图像,但不会单击第二个图像

单击的意思是,它不会将鼠标移动到第二个图像并单击。悬停不工作,鼠标移动不工作,悬停和鼠标单击不工作

这就好像windows在第一个命令后阻止了任何鼠标移动

我已经把打印屏幕,它通过所有的命令,做我输入的每一个代码,除了鼠标移动/点击机器人或sikuli

有什么帮助吗?是windows设置还是其他设置? 在这方面我已经研究了两周了,我不想用问题困扰ppl,但我完全被卡住了


非常感谢您的帮助。ty

2这种情况可能会发生:

public static String play = "C:\\pics\\lotto\\play.png";
public static String playmenu = "C:\\pics\\lotto\\playmenu.png";

s.click(play);
robot.delay(1000);
s.click(playmenu);
r.delay(1000);
可能发生的一件事是,当您单击play.png时,屏幕会发生变化,因此您无法找到playmenu.png。你应该问问自己:

  • playmenu.png是否依赖于play.png?也许,当您单击“播放”时,“播放”菜单会更改颜色、大小和边框,而您却找不到它
  • 两幅图像的模式重合是什么?也许他们需要低于平均水平。我要做的一件事是检查它们是否都存在,首先(如下所示):

前几行仅用于检查这些图像是否存在。现在,如果您注意到在单击第一个图像后,第二个图像没有被单击,您可以执行以下操作:

    s.click(new Pattern(play).similar(0.8f));
    robot.delay(1000);
    /* Another thing you can do is, after you click the first image (play), 
    you can move the mouse to another coordinate to lost animations after
    focus the first button, and recover the original aspect*/
    r.mouseMove(0,0);
    // Here, you lower the level of coincidence so it match with the new image
    s.click(new Pattern(playmenu).similar(0.6f));
    r.delay(1000);

我从Sikuli身上学到的一件事是确保捕捉到尽可能最小的独特图像。尽量不要使图像捕获的大小超过屏幕上唯一的需要(唯一,意味着它不能在多个地方被发现)。如果没有必要,请注意不要捕捉任何背景。此外,编写环境和运行环境之间的分辨率一致性对于可靠的测试结果至关重要。Sikuli一开始可能非常令人沮丧,但是它迫使测试编写者深入研究用户将如何与应用程序交互。在我看来,编写Sikuli测试本身的过程对于手动测试来说是一个有益的工具。

Hi,我目前正在将netbeans与java以及sikulixapi一起使用
// You can change the pattern of coincidence (need 85% of coincidence to be recognized)
if (s.exists(new Pattern(play).similar(0.85f)) != null) {
    System.out.println("Play exists!");
}
if (s.exists(new Pattern(playmenu).similar(0.85f)) != null) {
    System.out.println("Playmenu exists!");
}
    s.click(new Pattern(play).similar(0.8f));
    robot.delay(1000);
    /* Another thing you can do is, after you click the first image (play), 
    you can move the mouse to another coordinate to lost animations after
    focus the first button, and recover the original aspect*/
    r.mouseMove(0,0);
    // Here, you lower the level of coincidence so it match with the new image
    s.click(new Pattern(playmenu).similar(0.6f));
    r.delay(1000);