Не удалось нажать кнопку «Загрузить файл» с помощью JWinAuto - PullRequest
1 голос
/ 27 апреля 2011

Я новичок в JWinAuto и AutoIT.Я хочу нажать кнопку «Сохранить» в элементе управления «Загрузка файла».Я могу сфокусироваться на кнопке, но она не щелкает, если текущая загрузка файла не в фокусе.Я установил его сверху и активировал, чтобы он был сфокусирован.Но я все еще не могу нажать на кнопку.Я прилагаю код здесь.Кто-нибудь может сказать, если я что-то упустил ..

            private static final WString BLANK_STRING = new WString("");
            private static final WString FILE_DOWNLOAD = new WString("File Download");
            System.out.println("hi..");
            JAutoITx wrapper = JAutoITx.INSTANCE;
            wrapper.AU3_Init();
            wrapper.AU3_WinWait(FILE_DOWNLOAD, BLANK_STRING, 15);
            wrapper.AU3_WinActivate(FILE_DOWNLOAD, BLANK_STRING);
            System.out.println(wrapper.AU3_WinActive(FILE_DOWNLOAD, BLANK_STRING));
            wrapper.AU3_WinSetOnTop(FILE_DOWNLOAD, BLANK_STRING, 0);
            wrapper.AU3_ControlFocus(FILE_DOWNLOAD, BLANK_STRING, new WString(
                            "[CLASS:Button; INSTANCE:2]"));
            wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString(
                            "[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 6660, 500);
            wrapper.AU3_Send(new WString("s"), 0);

1 Ответ

2 голосов
/ 27 апреля 2011

Вам не нужно фокусировать окно, чтобы ControlClick работал.Его также не нужно активировать, устанавливать сверху и т. Д. Я понимаю, что это всего лишь тесты, но одной строки ControlClick должно быть достаточно.

Эта строка:

 wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString("[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 6660, 500);

ControlClick"title", "text", "controlID" [, button [, clicks [, x [, y]]]]

Вы в основном говорите: нажмите кнопку 6660 пикселей с левой стороны откнопка и 500 с верхней стороны кнопки.Эта кнопка может получить сообщение и проверить, нажал ли клиент внутри своих собственных координат.Если это так, кнопка должна быть размером 6660x500 пикселей, и я думаю, что здесь, но я уверен, что она не такая большая.

Тем более, что параметры являются необязательными, почему вы передаете этосовсем?Просто сделайте что-то вроде этого:

 wrapper.AU3_ControlClick(FILE_DOWNLOAD, BLANK_STRING, new WString("[CLASS:Button; INSTANCE:2]"), BLANK_STRING, 1, 0, 0);

Посмотрите, работает ли он только с ControlClick.И, как примечание, некоторые приложения проверяют, является ли окно активным, прежде чем обрабатывают какие-либо команды, отправленные элементам управления, но большинство приложений этого не делают.

Если это не отвечает на ваш вопрос, то я быхотел бы знать, к какому приложению относится кнопка «Загрузка файла», чтобы я мог сам написать тест.

...