Ускорение нажатия клавиш

database
Теги: #<Tag:0x00007fedbfc780a8>

(Roy Obenon) #1

Написал код который запускает приложение и открывает в Меню - Файл открыть. Но как то медленно оно переходит по меню, есть ли возможность увеличения скорость? И еще такая трабла, по логике нужно нажимать Файл и там открыть файл, но как только открывает меню - Файл, идет по диагонали и нажимает совсем другое меню, в итоге запуск другого пункта.


(Dmitry Bogatko) #2

А что вы автоматизируете?


(Roy Obenon) #3

Подключение приложения к удаленной БД


(sidelnikovmike) #4

Для большей наглядности было бы полезно увидеть код, как вы пытались.


(Roy Obenon) #5
    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();
    }
}

}


(Sergey Korol) #6
  1. Вам уже недавно советовали обновить версию Sikuli. По приведенному коду я вижу, что вы до сих пор используете старую.
  2. Что вы собственно ожидаете вызовом wait?
  3. Pattern имеет такое свойство, как similarity level, который лучше не оставлять дефолтным.
  4. Скорость поиска во многом зависит от размеров искомого региона и заданной точности.

(Roy Obenon) #7

У меня стоит версия 1.1.0 это и есть новая.
По поводу 2-го вопроса то подразумевалось sc.wait(waitWindow);


(Sergey Korol) #8

Что значит подразумевалось? Вы вставляете код с API, которого нет в официальном репозитории - wait(), а теперь пишете, что на самом деле там должен быть еще параметр, который вы почему-то удалили при вставке кода? :confused: По сути вы просто обращались к нативному wait класса Object.

Да и вообще, главный коммитер не рекомендует использовать подобные вейты, ибо это чистейший sleep. Для таких целей лучше подойдет exists или observer.

Ускорить поиск можно еще при помощи уменьшения значения параметра MinTargetSize. Но тут рискуете пожертвовать точностью.

П.С. Заодно читаем гайд по форматированию кода.


(rpwheeler) #9

Хочу от себя подчеркнуть рекомендацию №4: скорость поиска у Sikuli сильно зависит от региона поиска. Чем меньшим Вы его сделаете, тем быстрее будет находить. В своей практике я поиски для кликов по меню всегда старался свести как минимум к четверти экрана где оно ожидалось, а лучше ещё меньшей.


(Roy Obenon) #10

“свести как минимум к четверти экрана где оно ожидалось” - не понял мысль