how handle windows pop up selenium using autoit
Цей посібник пояснює різні методи обробки спливаючих вікон у селені, коли автоматизація виходить за рамки використання інструмента AutoIT:
AutoIT - це сторонній інструмент, який надає Selenium допомогу в роботі зі спливаючими вікнами, такими як спливаючі вікна автентифікації Windows, Flash-програми, настільні програми тощо.
Селен обмежений лише автоматизацією веб-додатків. У деяких випадках у програмі може з’явитися спливаюче вікно Windows, з яким Selenium не справляється. Для того, щоб впоратися з такими сценаріями, AutoIT надає допомогу, в якій він дбає про автоматизацію спливаючих вікон Windows та настільних додатків.
=> Завітайте сюди, щоб побачити серію навчальних селенів для всіх.
Що ви дізнаєтесь:
Огляд інструменту AutoIT
Ось відеоурок:
Обробляти спливаючі вікна Windows за допомогою AutoIT
AutoIT - це сторонній інструмент, який використовується для обробки програм на базі Windows. Мова сценаріїв, що використовується, називається VBScript.AutoIt - це також безкоштовна програма. Він використовує комбінаціюрух миші та натискання клавіатури для автоматизації дій, які неможливо здійснити за допомогою веб-драйвера селену.
AutoIt використовується у форматі .exe, щоб його можна було використовувати в сценарії автоматизації Selenium.
Давайте подивимось на приклад, де нам потрібно було б завантажити файл до програми.
Сценарій полягає у завантаженні зображення профілю на LinkedIn. Крок тесту для цього сценарію:
- Введіть URL-адресу
- Введіть дійсне ім’я користувача, пароль та увійдіть.
- Клацніть на піктограму завантаження профілю.
- З'являється спливаюче вікно Windows, в якому введено шлях для завантаження зображення.
До кроку 3 Selenium Automation може це впоратись. Коли з’являється спливаюче вікно Windows, сценарій AutoIT використовується для автоматизації цієї частини.
Тепер давайте подивимось, як автоматизувати дії у спливаючому вікні Windows?
З цим можна впоратися 4 різними способами.
- Використання команд Windows для завантаження певного файлу.
- Використання команд керування для завантаження файлу.
- За допомогою аргументу командного рядка вкажіть ім’я файлу, яке потрібно завантажити.
- Використання інструменту запису AutoIT.
Всі сценарії створюються за допомогою AutoItScriptEditor, який доступний у пакунку AutoIt.
Перейдіть до AutoIt3> SciTE> SciTE.exe і відкрийте додаток ScriptEditor.
# 1) Використання команд Windows
У нас є різні набори функцій в AutoIt.
Ви можете поглянути тут. Тепер, щоб автоматизувати спливаючі дії Windows, давайте спочатку проаналізуємо дії. До них належать:
- Встановіть фокус на поточне вікно.
- Введіть шлях до імені файлу для завантаження у поле Ім'я файлу.
- Натисніть кнопку Відкрити або натисніть клавішу Enter на клавіатурі.
Давайте детально розберемося у вищезазначених пунктах:
- Встановіть фокус на поточне вікно
WinWaitActive : Встановлює фокус курсора на вказане ім'я Вікна. У цьому випадку заголовок вікна - «Відкрити». Тому ми вказуємо команду якWinWaitActive (“Відкритий”).
Зверніть увагу, що одна і та ж назва Windows відрізняється для кожного браузера.
Сказати, для Firefox , це «Завантаження файлу», - Тож команда AutoIT будеWinWaitActive (“Завантаження файлу”).
Для IE, це «Файл для завантаження» - отже, команда AutoIT будеWinWaitActive (“Файл для завантаження”)
Для Chrome , це «Відкрити» - Отже, команда AutoIT будеWinWaitActive (“Відкритий”)
Ви повинні вказати заголовок вікна на основі браузера, який ви використовуєте для автоматизації.
2. Введіть шлях до імені файлу для завантаження у поле Ім'я файлу
Надіслати - надсилає обведення клавіатури або іншими словами, це імітує дії клавіатури.
Дії можуть натискати клавішу Enter, клавішу Shift тощо. АБО набравши рядок, число тощо. У цьому прикладі мені потрібно ввести ім’я файлу, тому я використовую команду для введення імені файлу у вікні. -Надіслати (“D: паспорт.jpg”)
3. Натисніть кнопку Відкрити або натисніть клавішу Enter на клавіатурі
Надіслати ({ENTER})- надсилає натискання клавіші ENTER у вікно, яке, у свою чергу, завершує дію завантаження.
у чому різниця між unix та linux
Збережіть сценарій, створений у будь-якому місці. Він буде збережений у форматі .au3. Після збереження клацніть правою кнопкою миші файл .au3 та скомпілюйте його.
Після компіляції він перетворюється у формат .exe (виконуваний формат). Цей файл ми використовуємо в сценарії Selenium.
Щойно файл .exe буде створений, ви зможете використовувати його у сценарії Selenium Automation для запуску команд у ньому
Runtime.getRuntime.exec (“вкажіть тут ім’я файлу autoIt exe”)
# 2) Використання команд управління
У нас є певні команди управління в AutoIT для виконання дій. Ось список команд управління в AutoIT.
Давайте подивимося, як автоматизувати той самий сценарій завантаження файлів за допомогою цих команд управління AutoIT.
Тепер по порядку для автоматизації спливаючого вікна Windows слід виконати такі дії:
- Встановіть фокус на поточне вікно.
- Введіть шлях до імені файлу для завантаження у поле Ім'я файлу.
- Натисніть кнопку Відкрити або натисніть клавішу Enter на клавіатурі.
Давайте детально розберемось у вищевказаних пунктах:
- Встановіть фокус на поточне вікно
ControlFocus:Встановлює фокус на вказаний елемент. У цьому випадку ми фокусуємось на текстовому полі редагування.
Подивившись на його опис, ви побачите, що він вимагає одного або кількох параметрів. Ми можемо передавати ці параметри за допомогою інструменту Windows Info від AutoIt.
Давайте відкрийте програму AutoIT, як показано нижче:
Інструмент Windows Info відкривається, як показано нижче:
Цей інструмент використовується для перевірки елементів у програмі / спливаючому вікні Windows.
Щоб отримати різні атрибути кожного елемента у спливаючому вікні Windows, перетягніть піктограму «Finder» на Інформаційному інструменті Windows і клацніть на елементі, щоб відобразити його властивості, як показано нижче.
Ми маємо його властивості, що відображаються в інструменті, як показано.
Для поля FileName властивостями та відповідними значеннями є:
- Заголовок - Відкритий
- ClassName - Редагувати
- Екземпляр - 1
Використовуючи ці властивості, ми можемо передавати параметри команди управління.
Тепер, щоб встановити фокус на поле FileName, ми викликаємо команду «ControlFocus», як показано нижче:
- Синтаксис: ControlFocus ('заголовок', 'текст', controlID)
- „Заголовок“ відповідає заголовку, який відображається в інструменті.
- Control Id - це комбінація ClassName + Instance в інструменті
ControlFocus ('Відкрити', '', 'Редагувати1')
Де,
- Відкрити - це заголовок
- Edit1 - це контрольний ідентифікатор (controlID = ClassName + Instance)
2. Введіть шлях до імені файлу для завантаження у поле Ім'я файлу
ControlSetText - вводить текст до елемента.
- Синтаксис: ControlSetText (“title”, “text”, controlID, “new text” (, прапор = 0))
У нашому випадку ми маємо ім’я файлу в текстовому полі.
ControlSetText ('Відкрити', '', 'Редагувати1', 'D: паспорт.jpg')
Де,
- Відкрити - це заголовок
- Edit1 - це контрольний ідентифікатор (controlID = ClassName + Instance)
- D: паспорт.jpg - це ім'я файлу для завантаження
3. Натисніть кнопку Відкрити або натисніть клавішу Enter на клавіатурі
ControlClick - виконує дію клацання на елемент. У цьому прикладі ми виконуємо натискання на кнопку «Відкрити»
- Синтаксис: ControlClick (“title”, “text”, controlID (, button = “left” (, click = 1 (, x (, y))))))
У нашому випадку слід натиснути кнопку «Відкрити» у спливаючому вікні Windows.
ControlClick ('Відкрити', '', 'Кнопка1')
Де,
- Відкрити - це заголовок
- Button1 - це контрольний ідентифікатор (controlID = ClassName + Instance)
Ми викликаємо файл .exe із коду Selenium за допомогою команди-Runtime.getRuntime.exec (“вкажіть тут ім’я файлу autoIt exe”)
ПРИМІТКА: Коли нам доводиться завантажувати кілька файлів в один примірник, ми можемо вказати всі імена файлів у змінній і передати ім'я змінної в команді.
ControlFocus - встановлює фокус на елементі.
$ files - це створена змінна, яка містить текст / ім'я файлу для завантаження.
ControlSetText - передає змінну, яка має імена файлів для завантаження, в елемент «Редагувати».
ContolClick - виконує дію клацання на елемент.
# 3) Використання командного рядка для вказування імені файлу для завантаження
До тієї самої процедури можна підійти по-різному, коли ім'я файлу отримується від користувача. Це робиться за допомогою підходу командного рядка.
Замість того, щоб безпосередньо вказувати ім'я файлу в AutoIT, ми передаємо його в код Selenium, як показано нижче:
Сценарій AutoIT: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
У селені Код:
Ми вказуємо це як:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
У цьому випадку це буде
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Збережіть створений файл та скомпілюйте його, щоб перетворити у виконуваний формат.
# 4) Використання функції запису AutoIT
Ця функція доступна лише у версіях нижче 3.3.14.0. Версії, більші за цю, не підтримують цю функцію.
Щоб відкрити інструмент «Запис», перейдіть до AutoIt3> Додатки> Au3Record> Au3Record.exe
Коли ми починаємо використовувати це, завжди переконайтеся, що не знімаєте прапорець «Запис миші», оскільки взаємодія з мишею залежить від роздільної здатності екрана. Завжди записуйте удари клавіатури.
Виберіть в інструменті «Клацнути для запису», і дії будуть записані в ньому.
Закінчивши запис, виберіть «Клацнути, щоб зупинити» та збережіть файл
Ви можете відкрити збережений файл .au3, щоб переглянути команди, створені для кожної виконаної дії
Скомпілюйте сценарій і перетворіть його у файл .exe.
Створений файл .exe можна використовувати безпосередньо в коді Selenium для виконання, як показано нижче:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Висновок
Таким чином, будь-яке спливаюче вікно Windows, як автентифікація або завантаження файлу, відкритий файл тощо, можна обробляти за допомогою AutoIT, включаючи файл сценарію в Selenium.
У наступному розділі ми дізнаємося про інший сторонній інструмент під назвою Sikuli, який використовується для автоматизації програм за допомогою техніки розпізнавання зображень.
=> Завітайте сюди, щоб вивчити селен з нуля.
Рекомендована література
- Як обробляти сповіщення / спливаючі вікна в Selenium WebDriver - Підручник з селену No16
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- 10 найкращих винятків селену та способи їх усунення (точний код)
- Вступ до Selenium WebDriver - Підручник з селену №8
- Підручник з AutoIt - Автозавантаження, встановлення та базовий сценарій AutoIt
- Підручник із селену ChromeDriver: Тести веб-драйверів на селен у Chrome
- 30+ найкращих підручників із селену: вивчіть селен на реальних прикладах
- Можливість сумісництва для експертів із селену