Как автоматизировать рутинные действия под Windows ? Этот вопрос часто задают мне в реальной жизни, видя, как мой компьютер сам выполняет действия, будь то в играх, будь то на сайтах или других местах. Если вас интересует данная тема автоматизации в Windows и вы хотите научиться, как автоматически выполнять какие-либо действия в любом приложении под Windows, то вам сюда. Оговорюсь, это не полный гайд, а введение и основы. Поняв эти основы вы уже сможете автоматизировать до 80% всех действий в Windows или приложениях. А для дальнейшего развития навыков есть куча тематических форумов и мануалов, благо, язык Autoit очень легек в освоении.
Как вы уже поняли, сегодня будут основы по Autoit — бесплатный набор средств и язык для автоматизации выполнения задач в Microsoft Windows. Позволяет создавать скрипты автоматизации (иногда называемые макросами), способные имитировать действия пользователя. Я знаю, что некоторые люди скачивают всякие расширения и плагины для браузеров, дабы написать какие-то макросы, чтобы браузер делал действия за них. Зачем, когда есть Autoit ?
Autoit Функции
Скачивание и установка
Чтобы начать пользоваться и начать писать скрипты на Autoit нужно скачать программу-обработчик, ссылка на страницу скачивания: https://www.autoitscript.com/site/autoit/downloads/
На момент написания этой статьи версия Autoit была v3.3.14.5.
Дальше нам желательно скачать специальный текстовый редактор AutoIt Script, ссылка на скачивание установщика: https://www.autoitscript.com/site/autoit-script-editor/downloads/
Можно конечно пользоваться и NotePad++, он поддерживает синтаксис Autoit, но я предпочитаю оригинальный редактор.
Порядок установки такой:
- Скачиваем и устанавливаем сначала autoit-v3-setup.exe;
- Затем уже ставим редактор SciTE4AutoIt3.exe.
Если у вас 64-битная Windows, то выбираем «use native x64 tools by default», а если 32-битная, то оставляем как есть. Если же вы не знаете какая у вас Windows, также оставляем все как есть.
Также во время установки компилятора Autoit будет задан выбор, «run the script» и «edit the script», обязательно выбираем второй вариант, «edit the script, иначе каждый раз при открытия файла скрипта он будет запускаться, что нам не нужно.
После установки у нас в меню Пуск должен появиться пункт Autoit, заходим в него и выбираем Autoit Windows Info, открываем приложение.
Также после установки у вас в контекстном меню Windows (это то, что появляется по нажатию правой кнопки мыши) появится пункт «Создать -> Autoit V3 Script». Создаем такой файл, открываем его и попадаем в редактор.
Откройте этот пустой файл в оригинальном редакторе и увидите пару строк по умолчанию, это комментарии, все это можно удалить.
В утилите Autoit Windows Info, которую вы открыли до этого, жмем стрелку вправо до тех пор, пока не появится пункт «Mouse», который нам и будет нужен. Все остальное это для более серьезных вещей и не рассматривается в данном гайде.
Autoit Введение
Autoit Windows Info.
Основы Autoit
Итак, самое простое, как заставить курсор мыши бегать по экрану, кликать там где нужно, крутить колесиком мыши, щелкать правой кнопкой и тд. и тп. Основы синтаксиса и самые необходимые базовые конструкции я приведу ниже, все остальное найдете сами в интернете:
Sleep(время в миллисекундах), например, Sleep(30000) — останавливает исполнение кода на заданное время. В моем примере это 30.000 миллисекунд, что равно 30 секундам. Всегда ставим какую-нибудь задержку в самое начало кода, чтобы когда вы его запустили, у вас было время на переключение на нужное приложение и т.п.
MouseMove(x, y) — перемещение курсора мыши в заданные координаты Х и Y, измеряется в пикселях. Например,
MouseMove(150, 255) — переместит курсор в точку с координатами 150 пикселей по оси X (отступ слева) и 255 пикселей по оси Y (отступ сверху).
MouseClick(«какая кнопка», x, y, «сколько раз кликать, число») — как и впредыдущем случае перемещает курсор мыши в точку с координатами X и Y. Но также эта команда позволяет кликнуть по этим координатам, либо правой клавишей, либо левой, причем кликнуть нужное количество раз. Разберем на примере:
MouseClick(«left», 150, 255, 2) — команда кликнет 2 раза левой кнопкой мыши по точке с координатами 150 и 255 пикселей. Или:
MouseClick(«right», 150, 255, 1) — кликнет правой кнопкой мыши 1 раз по точке с координатами 150 и 255.
Резонный вопрос, а как мне понять какие координаты у точки, по которой надо кликнуть ? Для этого, в утилите Autoit Windows Info в разделе «Mouse» перетягиваем иконку курсора (1 на картинке) на нужное место и отпускаем. В поле «Position» (2) внизу увидим значения для X и Y, тогда как поле «Color» показывает цвет пикселя, на который наведен курсор мыши (в HEX формате):
Вкладка Mouse.
Важно ! Координаты X и Y отсчитываются конкретно под ваш монитор и ваше разрешение экрана. То есть, написав скрипт у себя дома, на работе он может кликать не туда куда нужно, обязательно нужно писать координаты под конкретное разрешение монитора.
Больше автоматизации, к примеру, как сделать, чтобы курсор гулял по какому-то сайту и периодически кликал по нужным местам, при этом не прописывая кучу строк MouseClick ? Для этого, как и в любом языке, есть понятие цикл. Приведу простые истины и углубляться в виды циклов не буду. Запомните это и пока хватит:
. набор команд, любой код.
Until (пока) $i = 5
Где $i — это переменная. Переменная пишется через знак доллара и может принимать как числовые, так и текстовые значения. Например, $abc = «техноблоггер» или $z = 25.54.
Do — инициирует начало цикла, а Until — его конец. Все что между ними будет исполняться столько раз, пока переменная $i не станет равной 5. В теле цикла (внутри Do…Until) мы видим запись
$i = $i + 1 — это счетчик, который прибавляет +1 к значению $i после каждой итерации цикла. Важно! Если этого не сделать, мы получим бесконечный цикл, который никогда не завершится и компьютер может зависнуть.
MouseClick(«left», 150, 255, 1)
Sleep(1000)
MouseClick(«left», 155, 269, 1)
Sleep(1500)
MouseClick(«left», 120, 251, 1)
Sleep(3000)
Этот скрипт будет кликать по одному разу по координатам и ожидать заданное количество времени между кликами. То есть, сначала будт клик по точке 150 — 255 пикселей, затем ждем секунду, далее клик по точке 155 — 269, ждем 1,5 секунды, и наконец клик по 120 — 251 и ждем уже 3 секунды. И эти действия будут повторены 5 раз, от 0 до 4. Можно написать $a = 1 и до $a = 5, в моем случае отсчет был от 0.
В самом начале цикл пробежал один раз и добавил +1 переменной $a, которая теперь стала равна 1: $a = 0 + 1, затем сравнил, выполнилось ли условие, что $a = 4 ? И так до тех пор, пока условие не выполнится и $a не станет равно 4.
Насчет Sleep, как я уже говорил, это просто задержка. Советую всегда ставить Sleep между конструкциями действий, например, перемещения мыши.
И последнее, операции условий (ветвления) или как хотите называйте.
If … Else (если … иначе).
If (в скобках пишутся условия или выражения) Then (тогда)
. набор строк или команд.
Else (иначе)
. набор строк или команд.
Endif (конец ветвления)
Причем, Else — необязательно, можно и без него. Пример:
MouseClick(«left», 150, 255, 1)
MouseClick(«right», 150, 255, 1)
Понятно, думаю. Если $i равно 4, то кликаем левой кнопкой мыши 1 раз по координатам 150, 255. Иначе (если $i не равно 4) кликаем правой кнопкой мыши 1 раз по координатам 150, 255.
К примеру, в созданиях ботов для игр в качестве условия может выступать цвет пикселя, на который наведен курсор. Как вы помните, в утилите кроме координат еще показывает цвет пикселя в HEX формате.
В моем примере на картинке это 0xF0F4F9 (значение можно скопировать CTRL + C).
А как получить цвет пикселя непосредственно в программе автоматически ? Для этого есть несколько способов, самый простой это конструкция:
PixelGetcolor (x, y) — эта запись присваивает код цвета пикселя по координатам x,y в текстовом формате. Пример:
$x = 27
$y = 445
$i = «0xF0F4F9»
$color = PixelGetColor($x, $y)
if ($i = $color) Then
MouseClick(«left», 150, 255, 1)
Разберем. В переменных $x и $y лежат координаты соответственно для X и Y, куда будем перемещаться. Переменной $color присвоим значение, которое отдаст PixelGetColor. Дальше условие, если переменная $i = переменной $color, то кликаем левой кнопкой мышки 1 раз по нужным координатам.
Ну и напоследок, одной из кучи возможности Autoit является набор текста, вы можете послать в нужное место нужные набор символов.
Send(«текст») — отправляет слово «текст» в то место, где на данный момент находится курсор мыши.
Send(«») — нажмет клавишу «Стелка Вниз» на клавиатуре. Полный список набора клавиш можете найти в интернете.
Ну про колесико мыши упомяну:
MouseWheel(«куда крутить», «сколько крутить») — крутит колесико мыши вверх или вниз нужное количество раз. Например,
MouseWheel(«up», 10) или MouseWheel(«down», 15) — прокрутит колесико (скролл) мыши 10 раз вверх или 15 раз вниз.
Запуск скрипта
Ну хорошо, мы все написали, сохранили и хотим проверить. Как запустить скрипт Autoit на исполнение? Есть два способа:
- В редакторе нажимаем Tools -> Go (запуск), Tools -> Stop Executing (остановка);
- В редакторе жмем F5 (запуск) и CTRL + Break (остановка).
Если вы не расставите нужные задержки через Sleep, то не успеете остановить скрипт. Кстати, в редактор встроен отладчик, который подсветит красным неверный синтаксис и не даст запуститься скрипту, если в нем есть ошибки.
Писать можно долго, возможностей у языка очень много, это были просто основы для понимания. Если есть вопросы задавайте в комментариях. И не забывайте ставить Sleep.
Источник: texnoblogger.com
Autoit что это за программа и нужна ли она
AutoIt3
Цитата:
AutoIt v3 — это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя — симуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши и управления окнами и его визуальными элементами. Как показывает практика, эти «приводные ремни» весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны. Умеет он очень и очень многое! Бесплатный. |
Цитата:
Как скомпилировать скрипт, который будет включать в себя *.exe , *.mp3 , *.jpg , и т.д. (все в одном exe-файле) |
Стандартным образом, то есть точно также, как все остальные скрипты.
Цитата:
А как запустить их внутри сценария ? |
Их нужно куда-нибудь извлечь (во временную папку, напр.) и только после этого запустить.
Цитата:
А зачем тогда нужна команда «Fileinstall» ? При компиляции скрипта, содержащего «FileInstall ( «source», «dest» [,flag] )», |
Она нужна для включения в скрипт файла и его извлечения из скрипта куда-либо при его запуске.
Цитата:
А вот как запустить этот файл, не копируя его во временную папку ? Ведь он уже есть в откомпиллтрованном сценарии. |
Никак!
Обращал внимание, что делает архиватор при запуске файла, находящегося в архиве?
Тут аналогично.
Забыл добавить. Эти кнопки должны будут нажаты в определеной программе. Хотя незнаю какая разница. Вообще программа будет открыта и нужно только будет в ней нажимать эти клавиши .
Нашел такое.
Но беда в том, что оно не работает и не нажимает. Но когда есть окошко печати то печатает как нодо. =(
Opt(«SendKeyDownDelay», 3)
Opt(«SendKeyDelay», 2)
WinActivate($GameWinTitle, «»)
WinWaitActive($GameWinTitle, «», 5)
Написал в куче форумах по поводу тех апи. Оказалось что с помощью автоит у меня не получится той прогой управлять.
Код:
$code = Asc(«b») MsgBox(0, «ASCII code for b:», $code) |
-получаем ASCII значение.
а потом вместо b пишем , а как сделать ^b ?
в смысле нажатие CTRL-b в виде ASCII, чтобы например симулировать выделение жирным русского текста, но не переключаяя туда обратно раскладку.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
Источник: forum.ru-board.com
Доступно об AutoIt
Autoit — это BASIC’овидный язык программирования, на котором можно создавать боты (имитация действия пользователя) для автоматизации таких работ, т.е управлять другими приложениями (запускать их, нажимать в них кнопки, менюшки…).
— Симулировать нажатия комбинаций клавиатуры (поддерживается основная масса раскладок клавиатуры);
— Симулировать перемещения указателя мыши и нажатия на ее кнопки;
— Перемещать, менять размер и управлять параметрами отображения окон;
— Непосредственно взаимодействовать с «управляющими элементами» (controls) окна (получать/менять надпись, перемещать, отключать, и т.п. действия);
— Работать с буфером обмена для пересылки его текстового содержания;
— Читать, менять и создавать ключи и значения реестра.
Новая версия AutoIt3 распознает общепринятые конструкции и имеет стандартный синтаксис, напоминающий синтаксис VBScript и BASIC, и поддерживает обработку сложных выражений, выполнение собственных функций, проводит циклические и условные вычисления.
И самым знаменательным является тот факт, что AutoIt остается бесплатным.
Какой софт нужен для работы с AutoIt ?
Нужный софт можно скачать с оффициального сайта AutoIt. Мне поступило задание выгрузить полный пакет документов по заданному пулу клиентов из автоматизированной системы (АС). Данная выгрузка была очень трудозатратной для пользователя, т.к. приходилось обрабатывать каждого клиента, т.е. проделывать множество раз одни и те же операции. Для написания и редактирования скриптов (расширение au3) я использовал специальный редактор SciTE, который входит в пакет Autoit. В Редакторе удобно проверять правильность синтаксиса и кодировку au3-файла, осуществлять отладку по шагам, компиляцию (Ctrl+F5 — проверка синтаксиса, F4 — переход к следующей ошибке, Ctrl+F7 – компиляция и др..). Так же в состав пакета входят уже готовые функции для работы с определенными объектами (Excel, Word, Массивы, файлы, окна и др.) Подключить необходимые функции можно с помощью #include …, например, какие я использовал в своем скрипте:
#include #include #include #include #include #include
Большой выбор функций конечно же можно найти в интернете.
Т.к. работа по выгрузке документов могла выполняться на мониторах с разным типом разрешения, то необходимо было занести данные по разрешениям мониторов, которые используются в организации, в специальный настроечный файл. Для этого я использовал INI-файл. Autoit работет с данным типом файлов и для этих целей есть пять функций:
IniDelete(«filename»,»section»[,»key»]) — удалить секцию или значение из ini-файла.
IniRead(«filename»,»section»,»key»,»default») — считать значение из ini-файла.
IniReadSection(«filename»,»section») — считать все пары секция/значение из ini-файла.
IniReadSectionNames(«filename») — считать имена всех секций из ini-файла.
IniWrite(«filename»,»section»,»key»,»value») — записать значение в ini-файл.
;————————————————— ;—— координаты по разрешениям экрана————- ;—————————————————
[1920×1080] x1=40 y1=40 x2_1=770 y2_1=561 x2_2=770 y2_2=561 [1600×900] x1=46 y1=36 x2_1=609 y2_1=472 x2_2=609 y2_2=472 [1680×1050 x1=44 y1=37 x2_1=649 y2_1=546 x2_2=649 y2_2=546
В начале работы определяется разрешение монитора:
И в зависимости от разрешения считываются координаты из настроечного INI-файла.
$_x1=IniRead($f_ini,$_ekran, «x1», «Значение по умолчанию») $_y1=IniRead($f_ini,$_ekran, «y1», «Значение по умолчанию»)
В настроечный файл записываются данные, необходимые в дальнейшей работе, например, адрес сервера, логин (без пароля), пути выгрузки, которые вы вводите в начале работы, далее чтение и запросы на ввод/изменение данных:
И отражение данных в INI-файле:
Данные по клиентам считываем из .XLSX файла:
Получив данные для выгрузки, начинаем работать с АС, т.е. организуем цикл по количеству клиентов и непосредственную выгрузку документов. В каждой АС есть определенные пункты меню, к которым можно получим доступ по определенным сочетаниям клавиш, например: Alt+F1, Alt+1, Ctrl+t, Ctrl+n… либо за сочетанием клавиш закреплены определенные действия в АС: проваливание в список, вывод на экран информации, формирование отчетов.
Далее организуем цикл по количеству клиентов, считанных из входного XLSX-файла:
For $Shet=1 to UBound($aRange) -1 $_inn_ini=IniRead($load_ini,$aRange[$Shet], «Key», «no») if $_inn_ini<>’YES’ And $aRange[$Shet]<> «» then IniWrite($load_ini,$aRange[$Shet], «Key», «no») WinActivate($title) Send(«») ; . ALT . Sleep(500) далее множественные операторы обработки ….. …………………………….. Next; конец цикла
Ниже представлен блок на обработку установки фильтра по типу документов:
Send(«!3») $Spisok_PD = WinWait(«Полный список»,»»,20) If WinActive($Spisok_PD) Then ;—————————— Sleep(300) Send(«») Send(«») $tipD = WinWait(‘Тип документа’,»»,30) Sleep(300) If WinActivate($tipD) Then $_ftd=»» if $_tipDOC=»*» Then $_ftd=»» Else $_ftd=»%»»,'[CLASS:Edit; INSTANCE:1]’, $_ftd ) ControlClick(«Тип документа»,»»,'[CLASS:Button; INSTANCE:2]’) EndIf
Для определения координат окон, кнопок на экране, или их цвета (если это необходимо) используется приложение Autoit Window Info , которое входит в состав пакета.
Статистика выгрузки документов заносится в отдельный INI-фал, по каждому клиенту и типу документов, что выручает нас при аварийном завершении (например, зависание АС). Процесс выгрузки начинается с того клиента, на котором произошел сбой.
Если по какой-то причине не прошла выгрузка документа, например, очень долгий ответ от АС или зависание АС, то в INI-файл пишется информация о невыгруженном файле и времени записи в INI-файл :
IniWrite($load_ini,$iSection, «НЕ ВЫГРУЖЕН (» «) «, «»»»
Также интересен блок по обработке (т.е. выгрузке) файлов большого объема (более ~100 МБ), т.к. сохранение файлов такого объема из АС может занимать относительно значительное время. В данном случае работает цикл по считываю объема сохраняемого файла и сравнивается с реальным размером файла:
$_rasm=0 if $_Doubl=0 Then $_puf=$_Dir»MsgBox(4096,»путь-файл->»,$_puf) $loopwait=0 $loopmax=99 $goot=False $_razm_new=0 $_razm_old=0 While $goot=False and $loopwait < $loopmax Sleep(1500) $_razm_new=FileGetSize($_puf) MsgBox(4096,»Ждем. «,»Идет сохранение файла ->»» . » размер в КБ if $_razm_new = $_razm_old and $_razm_new<>0 and $_razm_old<>0 Then $goot=True $loopwait=$loopmax EndIF $loopwait=$loopwait+1 $_razm_old=$_razm_new WEnd EndIf
Я привел вашему вниманию основные блоки по обработке задачи, которая стояла перед скриптом Autoit.
В завершении, мне удалось автоматизировать процесс выгрузки требуемого пакета документов из АС с использованием AutoIt, что помогло разгрузить пользователя от однообразной и рутинной работы.
Программное обеспечение можно использовать для выполнения аналогичных повторяющихся задач. Спасибо за внимание.
Источник: newtechaudit.ru
46) АвтоИТ с Селеном
AutoIt – это бесплатный язык сценариев, разработанный для автоматизации графического интерфейса пользователя Windows и общих сценариев. Он использует комбинацию движений мыши, нажатий клавиш и управления окнами для автоматизации задачи, которая невозможна с помощью веб-драйвера селена.
В этом уроке вы узнаете
- Зачем использовать AutoIt?
- Как скачать и установить AutoIT
- Поиск элемента через идентификатор элемента и написание скрипта в редакторе AutoIT.
- AutoIT Загрузить файл в Selenium Webdriver
Зачем использовать AutoIt?
Selenium – это инструмент с открытым исходным кодом, предназначенный для автоматизации веб-приложений в различных браузерах, но для обработки оконного графического интерфейса и всплывающих окон без HTML в приложении. AutoIT требуется, так как эти оконные действия не обрабатываются Selenium.
Продвигаясь вперед, мы узнаем, как загрузить файл в веб-драйвер селена с помощью autoIT. Здесь нам нужно три инструмента для этого.
- Selenium Webdriver
- Редактор AutoIT и идентификатор элемента
- Окно, которое вы хотите автоматизировать
Как скачать и установить AutoIT
Шаг 1) : перейдите по этой ссылке.
Шаг 2) : наведите курсор на выпадающие меню «Autoit» и «Autoit Editor».
Шаг 3) Нажмите «Загрузки».
Шаг 4) : Загрузите «Autoit», нажав кнопку «Скачать Autoit».
Шаг 5) . Теперь загрузите «Autoit editor», нажав кнопку «Загрузки».
Шаг 6): Нажмите на ссылку, как показано ниже.
После загрузки вы получите два установочных файла, как показано на экране ниже, первый – это установка AutoIt версии 3 , а второй – Scitautoit3 .
Шаг 6) : Для установки AutoIT-Click по обеим настройкам AutoIT по одной.
Шаг 7) : После успешной установки – откройте AutoIT Editor.
Перейдите в «C: Program Files (x86) AutoIt3 SciTE»
и щелкните файл «SciTE.exe», откроется редактор AutoIT, как показано на экране ниже.
Шаг 8) : теперь открывается элемент Identifier.
Перейдите в «C: Program Files (x86) AutoIt3»
И нажмите на файл «Au3Info.exe», идентификатор элемента откроется, как показано на экране ниже.
Примечание. После того, как вы закончили с этим идентификатором элемента, вам нужно закрыть его вручную, он не закроется автоматически.
Поиск элемента через идентификатор элемента и написание скрипта в редакторе AutoIT.
Ниже мы увидим, как найти элемент в окне загрузчика файлов с помощью идентификатора элемента AutoIT (Идентификатор элемента – это инструмент, подобный IDE селена, идентификатор находит элемент окна GUI или всплывающие окна без HTML и предоставляет атрибут элемента, такой как title , class , пример ) и как написать скрипт в редакторе AutoIT, используя 3 метода.
Например: мы будем использовать страницу «Написать нам» guru99 для загрузки резюме (файл Doc).
После нажатия кнопки «Выбрать файл» на странице «Написать нам» нам нужно вызвать скрипт AutoIT. Элемент управления сразу же переводится в autoit после нажатия кнопки «Выбрать файл» с помощью инструкции ниже, которая заботится о загрузке части.
Runtime.getRuntime().exec(«E:\AutoIT\FileUpload.exe»);
Наконец, когда мы запустим скрипт selenium – он заполнит форму-> загрузить резюме-> отправить форму.
Шаг 1) : Теперь откройте Идентификатор элемента – перейдите в «C: Program Files (x86) AutoIt3» и щелкните файл «Au3Info.exe», откроется окно идентификатора элемента, как показано на экране ниже.
Шаг 2) : Теперь откройте окно загрузки файлов, нажав «Выбрать файл», которое является активностью Windows.
Шаг 3) . Перетащите инструмент поиска в элемент окна «Имя файла» окна загрузчика файлов, чтобы найти информацию об основных атрибутах, как показано на приведенном ниже экране со стрелкой.
Мы можем получить значение атрибутов, т.е. title = ‘Open’ , class = ‘Edit’ и instance = ‘1’, как показано ниже. Эти значения используются при написании скрипта AutoIT, как описано в шаге 4 ниже.
Шаг 4) : Теперь откройте AutoIT редактор сценариев, Гот ‘C: Program Files (x86) AutoIt3 SciTE’ и нажмите ‘SciTE.exe’ , как показано на шаге 7 из 1 – й темы.
Начните писать скрипт для выбора файла для загрузки.
Есть много доступных методов, которые мы можем использовать в скрипте в соответствии с требованием, но сейчас мы сосредоточимся на следующих методах, так как эти методы необходимы для написания скрипта загрузки файла:
- ControlFocus(” title “,” text “,controlID ) //Sets input focus to a given control on a window.
- ControlSetText(” title “,” text “,controlID ,” File path which need to upload ” ) // Sets text of a control.
- ControlClick(” title “,” text “,controlID ) //Sends a mouse click command to a given control.
You can see a number of methods are displayed as shown in below screen. The good feature of AutoIT is that it is somewhat like Eclipse that suggests you some of the methods.
Here in the AutoIT editor, we have selected “control focus” method. Element identifier is already opened and minimized as the element is already identified in above step 3. We can open it by maximizing it.
Now, we will take the values from element identifier for ‘ControlFocus’ and ‘ControlSetText’ methods as these methods works on same element i.e. ‘File name’ text box but for ‘ControlClick’ method need to capture values of different element i.e. ‘Open’ button.
Parameter values for ControlFocus method:
This method sets focus to the ‘file name’ text box of the file uploader window.
- 1st parameter title is ” Open “.
- We ignore 2nd parameter, the text is not required.
- 3rd parameter controlID is the combination of and Instance=’1′ i.e., . ‘Edit1.’
ControlFocus(«Open»,»»,»Edit1″) // This method sets input focus to ‘File name’ text box.
Parameter values for ControlSetText method :
This method is used to define the path of a file which we need to upload in ‘file name’ text box. In another way, we can say that this method is used to set the text to the input element.
- 1st parameter title is ” Open “.
- We ignore 2nd parameter, the text is not required.
- 3rd parameter controlID is the combination of and Instance=’1′ i.e., ” Edit1 “.
- 4th parameter new text, we pass the path of the file which we need to upload.
After following the above step, don’t close the windows (editor and element identifier), keep it remain open. You again need to open file uploader window as to find attributes of ‘Open’ Button as shown in below step 5.
Step 5): Now drag the finder tool on the “Open” button element of file uploader window to find the basic attribute information.
Предыдущие значения (т.е. атрибуты текстового поля «Имя файла») заменяются новыми значениями кнопки «Открыть». Вы можете видеть, что атрибут класса теперь изменен на «кнопку», которая ранее была «отредактирована» в окне идентификатора элемента AutoIT.
Мы можем получить значение атрибутов, т.е. title = ‘Open’ , class = ‘Button’ и instance = ‘1’, как показано ниже. Эти значения используются при написании скрипта Autoit, как описано ниже.
Значения параметров для метода ControlClick :
Этот метод нажимает на кнопку «Открыть» в окне загрузки файлов.
- Название первого параметра – «Открыть».
- Мы игнорируем 2-й параметр; текст не требуется.
- 3-й параметр controlID является комбинацией класса и экземпляра, т. Е. «Button1».
ControlClick(«Open»,»»,»Button1″) //This method click on ‘Open’ button of file uploader.
Шаг 6) . На приведенном ниже экране видно, что сценарий AutoIT завершен для обработки загрузчика файла. Теперь можно закрыть идентификатор элемента и сохранить сценарий как «FileUpload» в указанном месте (E: AutoIT).
Теперь вы не можете выполнить этот скрипт напрямую, вам нужно скомпилировать этот скрипт.
Для компиляции этого сценария у вас есть две опции: « сценарий компиляции x64 » и « сценарий компиляции x86 », если у вас 32-битная машина с Windows, тогда вы идете с « скриптом компиляции x86», а для 64-битной машины с Windows, тогда вы идете с « скрипт компиляции x64 . “
Шаг 7): файл ‘FileUpload exe’, сгенерированный после компиляции, вы можете увидеть на экране ниже. Теперь мы можем использовать этот файл в скрипте Selenium Webdriver.
Теперь мы будем использовать этот скрипт AutoIT в веб-драйвере Selenium. Проверьте ниже для вывода.
AutoIT Загрузить файл в Selenium Webdriver
- Откройте Eclipse и начните писать код.
- Когда селен нажимает на кнопку «Выбрать файл», открывается окно загрузки файла.
- Затем нам нужно вызвать скрипт AutoIT, элемент управления немедленно передается в AutoIT для загрузки файла, а затем элемент управления отправляется обратно в селен, как показано ниже.
Шаг 1) : Разработка сценария селена в Eclipse.
- Класс Runtime позволяет сценарию взаимодействовать со средой, в которой выполняется сценарий.
- getRuntime () получает текущую среду выполнения, связанную с этим процессом.
- Методы exec () выполняют скрипт AutoIT (FileUpload.exe).
Runtime.getRuntime().exec(«E:\AutoIT\FileUpload.exe»);
Выше строка вызовет скрипт AutoIT в селене и загрузит файл.
Шаг 2) : Выполните сценарий Selenium в Eclipse.
Вывод:
- Скачал и установил Идентификатор элемента и редактор AutoIT.
- Открыт сайт, на котором нужно сделать операцию.
- Идентификатор элемента идентифицирует элементы окна загрузки файла.
- Подготовлен скрипт AutoIT в редакторе с помощью идентификатора элемента.
- Скрипт Autoit используется в скрипте Selen Webdriver.
- Выполнен сценарий селена.
- Вывод: файл успешно загружен.
Эта статья предоставлена Гауравом Нигамом
Источник: coderlessons.com