Помогите разобраться с установкой sikuli на Ubuntu


(Sergey Korol) #11

Попробуйте этот вариант. Устанавливать надо пакеты для разработки. IDE / OCR не нужны. После установки, в корне установочной директории должен появиться необходимый jar (помимо всех прочих), который надо проинсталлить в локальный maven репозиторий. Не помню точно, что там за версия. Если не получится, расшарю еще сам sikulixapi.


(Александр) #12

Спасибо! Как установлю сразу отпишусь.


(Александр) #13

Проинсталировал все успешно, выбрал пункт 2 без IDE. В корневой папке лежит теперь вот такой jar файл:

sikuli-script.jar

Я так понимаю это не тот jar-файл который мне нужен?


(Sergey Korol) #14

Нужны паки 3,4.


(Александр) #15

Абсолютно та же картина, только вместо sikuli-script теперь sikuli-java. В корневой папке, которую я назвал sikulix лежит:

libs
sikuli-java.jar
sikuli-setup.jar
SikuliX-1.0.1-SetupLog.txt

(Sergey Korol) #16

Скорее всего это старая версия, но она должна прокатить для того, чтобы сикули нашел необходимые библиотеки во время экзекьюшена. Расшарил необходимый jar для установки в maven repo. Помните об имени и версии артефакта, установленных в dependency, прежде чем инталлировать jar.


(Александр) #17

Установил командой:

mvn install:install-file -Dfile=/home/alex/sikulix/sikulixapi.jar -DgroupId=info.testing.automated.sikuli -DartifactId=sikulix -Dversion=1.1.0 -Dpackaging=/home/alex/Documents/WORK/at.info-knowledge-base-master/functional\ test\ automation/sikuli/Java\ Sikuli\ WebDriver\ Examples/

Зависимости не ругаются. Но вот import не работает по прежнему.

import org.sikulix.script.Key;

Билд mvn выполнился успешно.

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building sikuli-examples 1.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ sikuli-examples ---
[INFO] Installing /home/alex/sikulix/sikulixapi.jar to /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix/1.1.0/sikulix-1.1.0./home/alex/Documents/WORK/at.info-knowledge-base-master/functional test automation/sikuli/Java Sikuli WebDriver Examples
[INFO] Installing /tmp/mvninstall3629615986533351007.pom to /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix/1.1.0/sikulix-1.1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.456 s
[INFO] Finished at: 2014-08-04T15:10:59+04:00
[INFO] Final Memory: 6M/117M
[INFO] ------------------------------------------------------------------------

(Sergey Korol) #18

Хорошо, давайте поиграем в игру “найди N отличий”:

Правильный ответ:

mvn install:install-file -Dfile=path/sikulixapi.jar -DgroupId=info.testing.automated.sikuli -DartifactId=sikulix-api -Dversion=1.0.0 -Dpackaging=jar

П.С. Судя по логу консоли, вы еще и install goal запускаете, вместо test. Зачем? Вы ведь вручную инсталлируете jar.


(Александр) #19

Но вы же сами сказали, что нет никакой разницы, как называть артефакты. Но не важно, хорошо. Я сделал так как вы сказали и по прежнему не могу сделать import org.sikulix.script.Key; IDEA подсвечивает красным библиотеку и пишет что не может её найти.


(Sergey Korol) #20

Не важно, если вы при этом осознаете факт последующего изменения соответствующей dependency руками. Автоимпорт включен в проекте? Если нет, то нужно рефрешнуть maven, чтобы он зерезолвил новые артефакты.


(Александр) #21

Уже делал reimport, все равно это не помогает.


(Александр) #22

Не знаю как это объяснить, но я удалил весь проект и заново собрал его руками. Import заработал. Спасибо большое за отзывчивость. С миру по нитке, как говорится. Вопрос такой еще у меня архитектура 64 разрядная. Это может как-то повлиять на работу? Использую:

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.12.04.2)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

(Sergey Korol) #23

Нет, новый сикули, в отличии от старого, не зависит от разрядности и версии jdk.


(Александр) #24

При попытке ввести в строку поиска google вылетает exception:

    [error] ImagePath: setBundlePath: Settings not changed: invalid BundlePath: null
[error] ResourceLoader: checkLibsDir: Not a valid libs dir for SikuliX (amd64): /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix-api/1.0.0/libs
[error] ResourceLoader: checkLibsDir: Not a valid libs dir for SikuliX (amd64): /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix-api/1.0.0/libs
java.lang.ExceptionInInitializerError
	at org.sikuli.script.Observer.checkPatterns(Observer.java:155)
	at org.sikuli.script.Observer.update(Observer.java:365)
	at org.sikuli.script.Region.observeDo(Region.java:2649)
	at org.sikuli.script.Region.observe(Region.java:2607)
	at info.testing.automated.sikuli.core.Desktop.observe(Desktop.java:44)
	at info.testing.automated.sikuli.core.Desktop.type(Desktop.java:36)
	at info.testing.automated.sikuli.examples.CommonSikuliActionsTests.sikuliClickAndType(CommonSikuliActionsTests.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
	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:1224)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
	at org.testng.TestNG.run(TestNG.java:1057)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: java.lang.NullPointerException
	at org.sikuli.basics.ResourceLoader.check(ResourceLoader.java:394)
	at org.sikuli.basics.FileManager.loadLibrary(FileManager.java:82)
	at org.sikuli.script.Finder.<clinit>(Finder.java:39)
	... 37 more

(Sergey Korol) #25

У вас путь к либам не засечен. В последней версии (которую удалили), автоматом сетились env vars.


(Александр) #26

Тот файл sikulixapi.jar, который вы мне скидывали я так понял нужен для того чтобы его установить в maven. А можно jar файл который я могу установить в локальный репозиторий? Или любой подойдет той же самой версии? Мне необходимо это сделать чтобы появилась папка libs.


(Sergey Korol) #27

Не совсем понял вопроса. Настоятельно рекомендую ознакомиться с maven’ом для начала, прежде чем пробовать что-то сложное. Следующей командой вы собственно и устанавливаете jar в локальный maven репозиторий.

mvn install:install-file -Dfile=path/sikulixapi.jar -DgroupId=info.testing.automated.sikuli -DartifactId=sikulix-api -Dversion=1.0.0 -Dpackaging=jar

Папка libs появляется после установки сикули. Вы как бы сами констатировали, что она появилась в установочной директории. Теперь лишь нужно прописать к ней путь в path.


(Александр) #28

Извините, неправильно поставил вопрос.
1)Установил sikuli через java -jar sikuli-setup.jar. Появилась папка libs.

2)Установил в локальный maven репозиторий sikulixapi.jar, который вы мне скинули

3)Настроил переменные (пользуюсь ubunta 12.04):

export Path=/home/alex/sikulix/libs/
export SIKULI_HOME=/home/alex/sikulix/
  1. Error тот же самый:

    [error] ImagePath: setBundlePath: Settings not changed: invalid BundlePath: null
    [error] ResourceLoader: checkLibsDir: Not a valid libs dir for SikuliX (amd64): /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix-api/1.0.0/libs
    [error] ResourceLoader: checkLibsDir: Not a valid libs dir for SikuliX (amd64): /home/alex/.m2/repository/info/testing/automated/sikuli/sikulix-api/1.0.0/libs


(Sergey Korol) #29

По ubuntu точно не подскажу. Но возможно в вашем случае при установке сикули еще понадобится 6й пак для кросс-платформенности.


(Sergey Korol) #30

Вот что нашел на офф сайте:

On Linux/Unix systems you need valid installations of OpenCV 2.2+ and Tesseract 3 before you can run setup or use Sikuli. Your system’s package manager should help to get the stuff. In doubt you have to build it from the sources. If you encounter any problems regarding missing libraries from libVisionProxy.so, check the above prerequisites again. If you are sure everything is ok, then it might be necessary, to build your own libVisionProxy.so. To help you get on the road, there is a supplemental package.

Вот еще quickstart guide.

UPDATE: вообще говоря, самую последнюю версию можно всегда собрать самому отсюда. Там и setup билдится, и профили под различные ОС подключаются.