Что нового

Простой скрипт кликания. Также есть вопросы по AutoIt3

g200

Новичок
Сообщения
3
Репутация
0
Привет всем !

Задача : автоматизировать процесс принятия заказов в удаленной работе, которые ведутся в клиенте программы (не браузер) :-[

Это моя первая программка. Критика и поправки приветствуются !

1. Открыть приложение по ярлыку на рабочем столе
2. Дождаться коннекта к серверу и появления окна клиента
3. Дождаться прогрузки данных в клиенте
4. Развернуть клиент на полное окно
5. Нажать на последний заказ
6. Дождаться прогрузки данных в клиенте
7. Нажать на Submit *
8. Дождаться прогрузки данных в клиенте
9. Уменьшить (восстановить) окно клиента
10. Закрыть приложение
11. Зациклить все вышеприведенные пункты

Вот что получилось :

Код:
$i=1

For $i=1 to 9999

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
WinWait("Program Manager","FolderView")
If Not WinActive("Program Manager","FolderView") Then WinActivate("Program Manager","FolderView")
WinWaitActive("Program Manager","FolderView")

#comments-start
Тут двойной клик по ярлыку на рабочем столе. Приложение подключается к базе данных и открывается в виде нового уменьшенного окна.
Таким образом у меня 2 окна - одно полное (коннект) и второе - непосредственно для работы.
#comments-end

MouseClick("left",1181,665,2)

WinWait("Shop Control Panel","")
If Not WinActive("Shop Control Panel","") Then WinActivate("Shop Control Panel","")
WinWaitActive("Shop Control Panel","")

#comments-start
Ожидаем открытия окна клиента, которое открывается на сразу, а после коннекта к базе данных (1-2 минуты)
#comments-end

Sleep(120000)

#comments-start
Тут клик, чтобы развернуть окно клиента на весь экран
#comments-end

MouseMove(952,7)
MouseDown("left")
MouseUp("left")

#comments-start
Ожидаем прогрузки всего содержимого страницы (1-3 минуты)
#comments-end

Sleep(130000)

#comments-start
Тут клик по свежему заказу (всегда в одном и том же месте)
#comments-end

MouseMove(872,899)
MouseDown("left")
MouseUp("left")

WinWait("Последний Заказ - Shop Control Panel","")
If Not WinActive("Последний Заказ - Shop Control Panel","") Then WinActivate("Последний Заказ - Shop Control Panel","")
WinWaitActive("Последний Заказ - Shop Control Panel","")

#comments-start
Ожидаем прогрузки всего содержимого страницы (1-2 минуты)
#comments-end

Sleep(100000)

#comments-start
Тут клик по кнопке Обработать и переход на страницу, что заказ принят. * см. примечания
#comments-end

MouseMove(628,683)
MouseDown("left")
MouseUp("left")

WinWait("Заказ Принят - Shop Control Panel","")
If Not WinActive("Заказ Принят - Shop Control Panel","") Then WinActivate("Заказ Принят - Shop Control Panel","")
WinWaitActive("Заказ Принят - Shop Control Panel","")

#comments-start
Ожидаем прогрузки отправки данных на сервер (1-2 минуты)
#comments-end

Sleep(120000)

#comments-start
Тут клик по кнопке Восстановить (чтобы уменьшить окно клиента до первоначального и нажать на Закрыть на фоновом окне.
#comments-end

MouseMove(1862,11)
MouseDown("left")
MouseUp("left")

WinWait("Connect Shop Control Panel","")
If Not WinActive("Connect Shop Control Panel","") Then WinActivate("Connect Shop Control Panel","")
WinWaitActive("Connect Shop Control Panel","")

#comments-start
Тут клик по кнопке Закрыть Приложение
#comments-end

MouseMove(1316,547)
MouseDown("left")
MouseUp("left")

#comments-start
Ожидаем поступления следующего заказа (от 3 инут)
#comments-end

Sleep(180000)

Next

#comments-start
И так цикл будет повторяться 9998 раз.
#comments-end

*. Примечания :

- Кнопка Submit находится где-то в центре страницы. У клиента скролбара и прочих кнопок прокручивания нет. Я прокручиваю только при помощи колесика мышки. Видимо, рекордеры (все пробовал) не фиксируют этот момент.
- Предполагается использовать также и с модемом 56К, отсюда такие длительные ожидания.

Сопутствующие вопросы :

- Как скролить с помощью скрипта ?

- Autoit может работать с названиями (name, id, value, class и т.п.) кнопок в браузере ? Если да, то есть ли ограничения на браузеры ? Где можно посмотреть по этому поводу литературу ? Я чет не нащел :( Имеется ввиду, чтобы делать те или иные действия не по пикселям позиционировая курсора, а непосредственно по нужным мне объектам на странице.

- Как можно организовать простой рандомайзер ? К примеру, меняется параметр в sleep () в случайном порядке в заданном интервале в пределах одного цикла. На PHP я это ясно представляю, тут еще не очень :scratch:

Спасибо за ответы :IL_AutoIt_1:
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Список функций хотя бы посмотрите в справке.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Верх