Только начал разбираться со связкой Sikuli + java и уже наткнулся на проблему: Sikuli не находит картинки на экране.
OS:
Windows 8 x64
Java:
java version “1.8.0_20”
Java™ SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot™ Client VM (build 25.20-b23, mixed mode)
Sikuli:
1.0.1
Ну, собственно код:
package testng_tutorial;
import org.sikuli.script.Screen;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Region;
public class MessageUtil {
private Pattern mainWindow;
private Region window;
private Screen m_screen;
public MessageUtil() {
mainWindow = new Pattern("mainWindow.png");
m_screen = new Screen();
try {
window = m_screen.wait(mainWindow);
} catch (FindFailed e) {
e.printStackTrace();
}
}
public boolean isPatternExists(Pattern p){
if (window == null)
{
return false;
}
try {
window.find(p);
return true;
} catch (FindFailed e) {
return false;
}
}
}
и тест сюда же:
package testng_tutorial;
import org.sikuli.script.App;
import org.sikuli.script.Pattern;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class SampleTest {
private App app;
private Pattern menuBtn;
@BeforeTest
public void setUp()
{
menuBtn = new Pattern("menu_button.png").similar((float).8);
app = App.open("C:\\Windows\\system32\\calc.exe");
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
@AfterTest
public void tearDown()
{
app.focus();
app.close();
}
@Test
public void testSample() {
MessageUtil messageUtil = new MessageUtil();
Assert.assertTrue(messageUtil.isPatternExists(menuBtn));
}
}
Ошибка:
[log] App.open C:\Windows\system32\calc.exe(8568)
FindFailed: can not find P(mainWindow.png) S: 0.7 on the screen.
Может кто знает, чё с этим добром делать?)