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


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

У меня ругается на import org.sikuli.script.*; Пишет что не найден, хотя все зависимости прописаны правильно. В чем может быть проблема сижу ломаю голову. Не могу его загрузить в проект тупо. Весь код примера брал с git.


[Code Recipe] Как использовать sikuli c webdriver. Пример для http://automated-testing.info
(Sergey Korol) #2

А сам сикули то установили?


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

Да конечно! И еще вопрос такой. Почему делается import из sikuli, а в зависимостях sikulix?


(Sergey Korol) #4

Во время инсталляции в локальный репозиторий я задал имя в соответствии с именем актуальной официальной версии - sikulix. Как вы обзовете ваш артефакт - ваше личное дело. Главное - его начинка. Собственно импорт делается из содержимого jar’a, т.е. org.sikuli.script - пакет, содержащий необходимые API Sikuli, а то, что указано в dependency, - лишь путь в локальном репозитории + имя архива.


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

Я установил sikulix в домашнюю папку ~/SikuliX/. Как я понял теперь мне надо перенести её в локальный репозиторий maven? Извиняюсь за глупые вопросы, я в java новичок совсем.


(Sergey Korol) #6

Ну вот собственно и причина нашлась. Во время установки сикули, у вас должен был появиться jar с необходимыми api. Его нужно проинсталлировать в локальный maven репозиторий, иначе депенденси не будет найдена. Инструкции можно найти здесь.


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

Воспользовался ссылкой и все установил как надо. Но к сожалению это не решило проблемы. Как мне теперь заимпортить библиотеку? Добавлял командой mvn install:install-file -Dfile=/home/alex/Downloads/sikuli-api-1.0.2-standalone.jar -DgroupId=info.testing.automated.sikuli -DartifactId=sikulix -Dversion=1.0.2 -Dpackaging=jar
Очень хотелось бы ваш пример посмотреть в действии и применить его.


(Sergey Korol) #8

Во-первых, я не знаю, что такое sikuli-api-1.0.2-standalone.jar и содержит ли он необходимые API. В инструкции вроде все предельно понятно было написано: sikulix-api.jar from root folder should be installed into local maven repository before test execution.
Во-вторых, если вы задаете новое имя / версию артефакту, то не забывайте изменить и dependency в pom’е.


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

Из инструкции я так и не понял откуда скачать. Я перехожу по ссылке, которая выше и там пустая таблица для загрузки файлов. Могли бы вы дать ссылку где бы я смог скачать правильный jar, который называется sikuli-api.jar


(Sergey Korol) #10

Мм, похоже разработчик его удалил, ввиду наличия некоторых критических багов (т.к. это была бета). Поищу у себя в архиве, скину ссылку.


(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, чтобы он зерезолвил новые артефакты.