Доброго времени суток!
Вдохновился видео"How to use Sikuli test automation?", создал проект (не через мавн т.к. на работе много проблем с прокси и пр.) в IntelliJ IDEA Community Edition 13.1.4.
Немного работал с webdriver , проверил работопособнось проспейших тесто в – все ок,
Подключил из папки Sikuli-IDE файл sikuli-script.jar
При запуске тест падает с сообщением:
java.lang.UnsatisfiedLinkError: C:\Users\pmanuilenko\AppData\Local\Temp\tmplib\Win32Util.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1003)
at com.wapmx.nativeutils.jniloader.NativeLoader.loadLibrary(NativeLoader.java:44)
at org.sikuli.script.Win32Util.<clinit>(Win32Util.java:19)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.sikuli.script.Env.getOSUtil(Env.java:91)
at org.sikuli.script.App.<clinit>(App.java:9)
at mcopackage.mco_main_class.trySikuli(mco_main_class.java:33)
Технические характеристики системы:
OS Windows 7 SP1 64-bit.
Java 6 – 37 (Java™ SE Development Kit 6 Update 37) 32-bit.
Вот код тестика:
package mcopackage;
import org.openqa.selenium.By;
import org.testng.annotations.Test; //Для распознания аннотаций Test в TestNG
import org.testng.Assert; //Для проверок
import org.openqa.selenium.WebDriver; //Для использования драйвера selenium
import org.openqa.selenium.WebElement; //Для работы с Web-элементами
import org.openqa.selenium.firefox.FirefoxDriver; //Для работы с браузером Firefox
import org.sikuli.script.App; //Для работы с приложением
import org.sikuli.script.Pattern; //Для работы с паттернами
import org.sikuli.script.Screen; //Для работы с скринами экрана
import org.sikuli.script.FindFailed; //Для поиска элементов
import java.util.InputMismatchException;
public class mco_main_class {
@Test(enabled = false)
public void testGoodle() {
WebDriver driver = new FirefoxDriver(); // Подключение драйвера браузера FirefoxDriver
driver.get("http://www.google.com"); // перейти к Google
WebElement indField = driver.findElement(By.name("q"));
indField.sendKeys("Hello!");
indField.submit();
driver.quit();
}
@Test(enabled = true)
public void trySikuli() throws FindFailed {
App mco = App.open("D:\\Soft\\mco.jnlp");
Screen screen = new Screen();
Pattern mcoWindow = new Pattern("D:\\screenshots\\mcowindow.png");
screen.wait(mcoWindow);
mco.close();
}
}
Сикули: Sikuli-X-1.0rc3 (r905)-win32 (в нем хранится и sikuli-setup.jar)
Подключал так: File → Progect structure → Libraris → + → Java → в проводнике выбрал sikuli-setup.jar
После установки не патчил - не совсем понял, что имеется ввиду…
В path прописал путь к sikuli-setup.jar - не помогло.
Доброго дня!
Скачал я sikuli-setup.jar, установил, проверил, в системных переменных прописались пути и к libs и в home.
Подключил в проект sikulix.jar, а затем и все jar-файлы в папке (sikuli-api-1.0.2-standalone.jar, sikulixapi.jar, sikulixapi-1.1.0-javadoc.jar, sikulixremoteserver.jar, sikulixsetup-1.1.0.jar, 1.1.0-1.jar, 1.1.0-2.jar, 1.1.0-3.jar).
Код теста не менял, теперь ошибка следующая:
[TestNG] Running:
C:\Users\pmanuilenko\.IdeaIC13\system\temp-testng-customsuite.xml
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.sikuli.basics.SysJNA$WinKernel32
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.TimeT
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.TimeT$timeval_customizer
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.StructIO$DefaultCustomizer
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.TimeT$timeval
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.StructObject
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.NativeObject
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type org.bridj.AbstractIntegral
22.10.2014 11:11:36 org.bridj.BridJ log
INFO: Registering type java.lang.Number
[error] ResourceLoader: loadLib: Fatal Error 109: not found: D:\Instal\auto\Sikuli\libs\VisionProxy.dll
[error] ***** Terminating SikuliX after a fatal error 109 *****
It makes no sense to continue!
If you do not have any idea about the error cause or solution, run again
with a Debug level of 3. You might paste the output to the Q&A board.
java.lang.ExceptionInInitializerError
at org.sikuli.script.App.<clinit>(App.java:45)
at mcopackage.mco_main_class.trySikuli(mco_main_class.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: java.lang.NullPointerException
at org.sikuli.script.Screen.getPrimaryScreen(Screen.java:321)
at org.sikuli.script.Sikulix.cleanUp(Sikulix.java:199)
at org.sikuli.script.Sikulix.terminate(Sikulix.java:180)
at org.sikuli.basics.ResourceLoader.loadLib(ResourceLoader.java:821)
at org.sikuli.basics.FileManager.loadLibrary(FileManager.java:83)
at org.sikuli.script.Screen.<clinit>(Screen.java:56)
... 32 more
Я так понял, что вы установили одну из последних версий? Там при установке должна была появляться менюшка с выбором необходимых компонентов. Вам нужно обязательно включить опцию разработки в различных IDE.
Тогда в установочной директории должны появиться папки lib / libs (по крайней мере в последней версии). Не помню точно, как было в предыдущих. Кстати, в процессе оно должно предлагать загружать файлы или оставлять текущие. Возможно вы что-то пропустили.