|
|||||||||||||||||||||
|
Блог Сэмма. Autoit автоматизация браузераПримеры автоматизации работы в AutoIt / Песочница / ХабрахабрВторое — автоматизация Total Commander При запуске данной программы (если, конечно, она не зарегистрирована) появляется окошко с просьбой-приказом нажать кнопку 1, 2 или 3. Рутина… Давайте, автоматизируем это…;MouseClick («left»,184,1007,1,10) ; Запускаем Total Run(«C:\Program Files\totalcmd\TOTALCMD.EXE»,«C:\Program Files\totalcmd\»,@SW_SHOW) ; Ждем, пока появится окошко WinWaitActive(«Total Commander») ; В переменную — заголовок Total Commander $title=«Total Commander» ; Ждем 3 сек. sleep(3000) ; Получаем текст поля Total, где предлагается нажать определенную кнопку $var = ControlGetText($title, "", «TPanel2») sleep(500) ; Если там написано 1 — подводим мышку и нажимаем первую кнопку If $var=«1» Then MouseMove(550,634) ; Если там написано 2 — подводим мышку и нажимаем вторую кнопку ElseIf $var=«2» Then MouseMove(663,630) else ; Иначе — подводим мышку и нажимаем третью кнопку MouseMove(746,633) EndIf MouseClick(«left») ; Ищем окно с заголовком и сворачиваем его WinSetState(«Total Commander 7.50a — НЕ ЗАРЕГИСТРИРОВАНО»,«Total Commander 7.50a — НЕ ЗАРЕГИСТРИРОВАНО»,@SW_MINIMIZE) Хочу предупредить — код привязан к конкретному разрешению экрана, если будете запускать его — предварительно укажите свои координаты окон. Сделать это можно, использую утилиту AutoIt Window Info, она поставляется вместе с дистрибутивом AutoIt. Что еще? Чтение текстового файла, где через разделитель, например "|" содержатся имена пользователей и пароль:11111|qwerty 22222|asdfgh Код для чтения такого файла (мой код для чтения данного файла):; Путь к файлу с паролями — <имя пользователя>|<пароль> $file='C:\Temp\4.txt' If FileExists($file) Then ; Файл найден $file_read=FileOpen($file,0) If $file_read = -1 Then MsgBox(0, «Error», «Файл невозможно открыть.») Exit EndIf While 1 $login='' $passwd='' $str='' $line = FileReadLine($file_read) If error = -1 Then ExitLoop ; Чтение файла. line — строка $str=StringSplit($line,'|') $login=$str[1] $passwd=$str[2] ; Здесь код, который меняет пароль в программе Wend FileClose($file) Else ; Файл не найден MsgBox(4096,$file, «Does NOT exists») Exit EndIf В моем случае, данный код применяется для групповой смены паролей в одной программе, где разработчики не предусмотрели возможность групповой смены паролей. Подытожим: Привожу команды (ну или операторы), наиболее применяемые в моем случае: 1. MouseClick('left',110, 309,1,10) — Эмуляция нажатия на кнопку. Параметры (с лева на право) — кнопка — левая, координаты x,y, число нажатий, скорость перемещения 2. Send('abc'), Send('{TAB}') — эмуляция ввода. В первом случае вводится текстовая строка («abc»), во втором случае — эмулируется нажатие кнопки «Табуляция». Нажать ENTER можно, соответственно, так, Send('{ENTER}') Обращаю внимание, у меня были случаи, когда AutoIT не успевал вводить текст, для управления скоростью ввода используйте функцию — AutoItSetOption («SendKeyDelay»,70), где число — скорость ввода в мл. сек. 3. Sleep(1000) — Пауза 4. WinActivate(«Пользователи — Microsoft Internet Explorer», "") — Активировать окно, то есть вывести его на передний план, если оно, конечно, открыто. 5. Изменить (установить) статус окна, например WinSetState($title, '', @SW_HIDE) — спрятать окошко, с заголовком. указанным в переменной $title Пока это все. Благодарю за внимание! habrahabr.ru Средства автоматизации | Блог СэммаКомпьютеры уже достаточно прочно вошли в нашу жизнь и далеко ушли по мощности от тех агрегатов, что представляли из себя первые модели. Но сама концепция делать все руками, без помощи автоматизации сохранилась по сей день. Рутина утомляет, отнимает время, и все люди понимают, что эта рутина съедает наше время – самое дорогое что у нас есть. Существует множество средств автоматизации работы на компьютере. Самые известные из них:
ImacrosImacros – самый простой инструмент автоматизации, поэтому слишком многого от него ожидать не стоит. Бесплатные версии устанавливаются как дополнения к браузеру, но есть также платный аналог в виде программы с более расширенным функционалом. От себя хочу добавить, что Imacros корректно работает только в браузере Mozilla Firefox. У меня были попытки запускать Imacros в других браузерах, но из-за глюков и нестабильной работы я отказался от других браузеров в пользу Mozilla Firefox. В браузере Google Chrome он вообще сильно кастрирован и половина функционала (не такого богатого) там отсутствует. Imacros позволяет выполнять некоторые рутинные действия в браузере связанные с авторизацией, загрузкой файлов и прочие мелочи. В Imacros присутствует возможность записи действий пользователя. Поводив мышкой вы получаете практически рабочий скрипт. Но не все так просто, в некоторых местах его обязательно придется править руками. Imacros не умеет работать с циклами. Некоторое подобие цикла можно получить задав последовательно разные условия и отключив при этом обработку ошибок. Тогда пропуская ошибочные условия в скрипте он все-таки дойдет до нужного условия и выполнит его. Также цикл можно засунуть в отдельный ява-скрипт и подключить его в Imacros, но для этого надо уметь писать их. Единственный плюс Imacros в том что он мультиплатформенный. Он с успехом работает на всех операционных системах Windows и Linux после установки браузера Mozilla Firefox. Скачать Imacros для Firefox вы сможете тут. AutoitAutoit изначально задумывался как средство автоматизации установки программ, и до сих пор с успехом выполняет эту функцию. Также с помощью Autoit можно решить все рутинные задачи при работе на компьютере. Минусы Autoit – более сложный язык скриптов, чем в Imacros. Для работы с браузерами придется “попотеть” чтобы заставить эту программу что-то делать. Иногда для работы с браузерами имеет смысл использовать Autoit вместе с Imacros. Autoit работает только в ос Windows. В интернет много форумов, где можно получить не только совет по использованию, но и готовый скрипт Autoit для своих целей. Также есть возможность записи действий пользователя и преобразования в готовый скрипт. Но, так же как в Imacros эти скрипты после записи приходится доводить до ума. Есть возможность преобразовать готовый скрипт в .exe файл и запускать его на других машинах. Autoit имеет более богатый функционал, чем Imacros. Скачать Autoit вы сможете отсюда. Пообщаться на форуме и задать свои вопросы вы сможете тут. Human EmulatorHuman Emulator я считаю продвинутым и профессиональным инструментом, способным решить все задачи автоматизации. Но как всегда есть свои подводные камни. Чтобы написать более-менее рабочий скрипт, нужно знать хотя бы азы PHP. Немного сложный в изучении (для обычного юзера), но имеющий массу возможностей. Ну и еще один существенный минус – это платный продукт, на данный момент стоимость одной лицензии составляет 397$. Цена может меняться в меньшую сторону. Разработчики периодически делают сезонные скидки. Плюс к этому есть возможность обновлять купленную версию в течении полугода. Также вы получаете доступ на закрытый форум, где можете задать свои вопросы разработчикам. Для желающих “пощупать” продукт перед покупкой есть демо-версия, кстати обладающая неплохим функционалом! Демо версию вы можете загрузить отсюда. Командная строка Windows и эмулятор терминала LinuxХочу также пару слов сказать о забытом многими мощном инструменте автоматизации – это эмуляторе терминала. В Windows он имеет урезанный вариант, поэтому для более полного его использования советую установить дополнительную программу под названием – Windows PowerShell. Ознакомиться с возможностями Windows PowerShell вы сможете скачав книгу в формате pdf отсюда. Также существует такая потрясающая возможность автоматизации, как усовершенствованная версия командной оболочки, доступная всем дистрибутивам Linux. Тут все ограничивается только вашей фантазией и знаниями.
AutoIt указатель автоматизация MS Internet Explorer | ||||||||||||||||||||
User Defined Function | Description | ||||||||||||||||||||
_IE_Example | Display a new browser window pre-loaded with documents to be used in IE.au3 examples or your own testing | ||||||||||||||||||||
_IE_Introduction | Display introductory information about IE.au3 in a new browser window | ||||||||||||||||||||
_IE_VersionInfo | Returns an array of information about the IE.au3 version | ||||||||||||||||||||
_IEAction | Perform any of a set of simple actions on the Browser. | ||||||||||||||||||||
_IEAttach | Attach to the first existing instance of Internet Explorer where the search string sub-string matches based on the selected mode. | ||||||||||||||||||||
_IEBodyReadHTML | Returns the HTML inside the <body> tag of the document. | ||||||||||||||||||||
_IEBodyReadText | Returns the Text inside the <body> tag of the document. | ||||||||||||||||||||
_IEBodyWriteHTML | Replaces the HTML inside the <body> tag of the document. | ||||||||||||||||||||
_IECreate | Create an Internet Explorer Browser Window. | ||||||||||||||||||||
_IECreateEmbedded | Create a Webbrowser object suitable for embedding in an AutoIt GUI with GuiCtrlCreateObj(). | ||||||||||||||||||||
_IEDocGetObj | Given any DOM object, returns a reference to the associated document object. | ||||||||||||||||||||
_IEDocInsertHTML | Inserts HTML Text in or around an element. | ||||||||||||||||||||
_IEDocInsertText | Inserts Text in or around an element. | ||||||||||||||||||||
_IEDocReadHTML | Returns the full HTML source of a document. | ||||||||||||||||||||
_IEDocWriteHTML | Replaces the HTML for the entire document. | ||||||||||||||||||||
_IEErrorHandlerDeRegister | Disable a registered user COM error handler | ||||||||||||||||||||
_IEErrorHandlerRegister | Register and enable a user COM error handler | ||||||||||||||||||||
_IEErrorNotify | Specifies whether IE.au3 automatically notifies of Warnings and Errors (to the console) | ||||||||||||||||||||
_IEFormElementCheckboxSelect | Set the value of a specified form element. | ||||||||||||||||||||
_IEFormElementGetCollection | Returns a collection object variable representing all Form Elements within a given Form. | ||||||||||||||||||||
_IEFormElementGetObjByName | Returns an object reference to a Form Element by name. | ||||||||||||||||||||
_IEFormElementGetValue | Returns the value of a given Form Element. | ||||||||||||||||||||
_IEFormElementOptionselect | Set the value of a specified form element. | ||||||||||||||||||||
_IEFormElementRadioSelect | Set the value of a specified form element. | ||||||||||||||||||||
_IEFormElementSetValue | Set the value of a specified Form Element. | ||||||||||||||||||||
_IEFormGetCollection | Returns a collection object variable representing the Forms in the document. | ||||||||||||||||||||
_IEFormGetObjByName | Returns an object reference to a Form by name. | ||||||||||||||||||||
_IEFormImageClick | Simulate a mouse click on an <input type=image>. Match by sub-string match of alt text, name or src. | ||||||||||||||||||||
_IEFormReset | Reset a specified Form setting the values back to their loaded defaults. | ||||||||||||||||||||
_IEFormSubmit | Submit a specified Form. | ||||||||||||||||||||
_IEFrameGetCollection | Returns a collection object containing the frames in a FrameSet or the iFrames on a normal page. | ||||||||||||||||||||
_IEFrameGetObjByName | Returns an object reference to a Frame or iFrame by name. | ||||||||||||||||||||
_IEGetObjByName | Returns an object variable by name or id. | ||||||||||||||||||||
_IEHeadInsertEventScript | Inserts a javascript into the Head of the document. | ||||||||||||||||||||
_IEImgClick | Simulate a mouse click on an image. Match by sub-string match of alt text, name, or src. | ||||||||||||||||||||
_IEImgGetCollection | Returns a collection object variable representing the IMG tags in the document. | ||||||||||||||||||||
_IEIsFrameSet | Checks to see if the specified Window contains a FrameSet. | ||||||||||||||||||||
_IELinkClickByIndex | Simulate a mouse click on a link by 0-based index (in source order). | ||||||||||||||||||||
_IELinkClickByText | Simulate a mouse click on a link with text sub-string matching the string provided. | ||||||||||||||||||||
_IELinkGetCollection | Returns a collection object containing all links in the document. | ||||||||||||||||||||
_IELoadWait | Wait for a browser page load to complete before returning. | ||||||||||||||||||||
_IELoadWaitTimeout | Retrieve or set the current value in milliseconds _IELoadWait will try before timing out. | ||||||||||||||||||||
_IENavigate | Directs an existing browser window to navigate to the specified URL. | ||||||||||||||||||||
_IEPropertyGet | Returns a select property of the Browser or DOM element. | ||||||||||||||||||||
_IEPropertySet | Set a select property of the Browser or DOM element. | ||||||||||||||||||||
_IEQuit | Close the browser and remove the object reference to it. | ||||||||||||||||||||
_IETableGetCollection | Returns a collection object variable representing all the tables in a document. | ||||||||||||||||||||
_IETableWriteToArray | Reads the contents of a Table into an array. | ||||||||||||||||||||
_IETagNameAllGetCollection | Returns a collection object all elements in the document or document hierarchy in source order. | ||||||||||||||||||||
_IETagNameGetCollection | Returns a collection object of all elements in the object with the specified TagName. |
|
..:::Счетчики:::.. |
|
|
|
|