Написал код который запускает приложение и открывает в Меню - Файл открыть. Но как то медленно оно переходит по меню, есть ли возможность увеличения скорость? И еще такая трабла, по логике нужно нажимать Файл и там открыть файл, но как только открывает меню - Файл, идет по диагонали и нажимает совсем другое меню, в итоге запуск другого пункта.
А что вы автоматизируете?
Подключение приложения к удаленной БД
Для большей наглядности было бы полезно увидеть код, как вы пытались.
public class TestRun {
private static Pattern clickfile, openkfile, waitWindow;
private static Screen sc = new Screen();
@Test
public void runApp() {
App.open("C:\\ProgramFiles(x86)\\.......................");
waitWindow = new Pattern("C:\\mainWindow.png");
clickfile = new Pattern("C:\\menufile.png");
openkfile = new Pattern("C:\\openfile.png");
try {
sc.wait();
sc.click(clickfile);
sc.click(openkfile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Вам уже недавно советовали обновить версию Sikuli. По приведенному коду я вижу, что вы до сих пор используете старую.
- Что вы собственно ожидаете вызовом wait?
- Pattern имеет такое свойство, как similarity level, который лучше не оставлять дефолтным.
- Скорость поиска во многом зависит от размеров искомого региона и заданной точности.
У меня стоит версия 1.1.0 это и есть новая.
По поводу 2-го вопроса то подразумевалось sc.wait(waitWindow);
Что значит подразумевалось? Вы вставляете код с API, которого нет в официальном репозитории - wait()
, а теперь пишете, что на самом деле там должен быть еще параметр, который вы почему-то удалили при вставке кода? По сути вы просто обращались к нативному wait
класса Object
.
Да и вообще, главный коммитер не рекомендует использовать подобные вейты, ибо это чистейший sleep. Для таких целей лучше подойдет exists
или observer
.
Ускорить поиск можно еще при помощи уменьшения значения параметра MinTargetSize
. Но тут рискуете пожертвовать точностью.
П.С. Заодно читаем гайд по форматированию кода.
Хочу от себя подчеркнуть рекомендацию №4: скорость поиска у Sikuli сильно зависит от региона поиска. Чем меньшим Вы его сделаете, тем быстрее будет находить. В своей практике я поиски для кликов по меню всегда старался свести как минимум к четверти экрана где оно ожидалось, а лучше ещё меньшей.
“свести как минимум к четверти экрана где оно ожидалось” - не понял мысль