Зберігати змінні, відлуння, сповіщення, обробку спливаючих вікон Selenium IDE
⚡ Розумний підсумок
Зберігати команди в Selenium IDE зберігає значення середовища виконання в іменовані змінні, echo виводить їх у журнал, а спеціальне сімейство команд обробляє сповіщення, діалогові вікна підтвердження та перемикання між кількома вікнами браузера.

У цьому посібнику ви дізнаєтеся про команди store, команду echo, а також про обробку попереджень та спливаючих вікон у Selenium IDEРазом ці команди перетворюють фіксований записаний скрипт на такий, що реагує на все, що повертає програма під час виконання.
⚠️ Примітка щодо версій: скріншоти нижче взяті з оригіналу Firefox-підключати Selenium IDE, а команди використовують його назви у верблюжому регістрі селенських літер. Поточний Chrome, Firefox а розширення Edge зберігає ту саму поведінку, але записує більшість імен команд з пробілами. Картаping Таблиця відображається ближче до кінця цієї статті, і кожна оригінальна команда та знімок екрана збережені в опублікованому вигляді.
Selenium Змінні IDE
Магазин
Для зберігання змінних у Selenium IDE, ми використовуємо зберігати команда. На ілюстрації нижче значення «tutorial» зберігається у змінній з іменем «myVariable».
Щоб отримати доступ до змінної, просто вкажіть її в символі ${ … }. Наприклад, щоб ввести значення «myVariable» у текстове поле «userName» Mercury Тури, введіть ${myVariable} у полі «Значення».
Команда відлуння в Selenium IDE
Збережена змінна невидима, доки щось її не виведе, і саме це... нудьгувати команда. Вона записує повідомлення в панель журналу IDE під час відтворення, що робить її найшвидшим способом підтвердження того, що команда store охопила очікувані дані, перш ніж створювати твердження на її основі.
Команда приймає будь-яку з форм:
- Літеральний рядок. Вставте текст у Target поле, наприклад Етап входу завершено, щоб позначити контрольну точку у довгому сценарії.
- Змінна. Помістіть ${myVariable} у Target поле, а збережене значення друкується замість імені.
Дві звички роблять echo набагато кориснішим, ніж здається на перший погляд. Вивести змінну одразу після команди store, яка її створює, таким чином вивести помилку. tracдо захоплення, а не до твердження через двадцять кроків. І додавайте перед кожним повідомленням крок, до якого воно належить, оскільки панель журналу відображає кожну команду в одному плоскому списку. Зауважте, що echo записує лише в журнал — він ніколи не змінює сторінку та ніколи не проходить перевірку, тому його безпечно залишити в скрипті назавжди.
StoreElementPresent
Ця команда зберігає або «true», або «false» залежно від наявності вказаного елемента. Наведений нижче скрипт зберігає логічне значення «true» у «var1» та «false» у «var2». Для перевірки ми використаємо команду echo для відображення значень var1 та var2. Базовий варіант URL для ілюстрації нижче було встановлено значення Mercury Домашня сторінка турів.
StoreText
Ця команда використовується для збереження внутрішнього тексту елемента у змінній. На ілюстрації нижче внутрішній текст тегу h1 на сторінці реєстрації Facebook зберігається у змінній з назвою «textVar».
Оскільки це єдиний елемент такого типу на сторінці, можна безпечно використовувати «css=h1» як ціль. Зображення нижче показує, що Selenium IDE вдалося зберегти рядок «Sign Up» у змінній «textVar», оскільки echo правильно вивело її значення.
Сповіщення, спливаючі вікна та кілька Windows
Сповіщення, мабуть, є найпростішою формою спливаючих вікон. Найпоширеніші Selenium Для обробки сповіщень використовуються такі команди IDE:
| Alerts | Використовує |
|---|---|
|
assertAlert assertNotAlert |
отримує повідомлення сповіщення та порівнює його з вказаним вами рядковим значенням |
|
assertAlertPresent assertAlertNotPresent |
підтверджує, чи є сповіщення, чи ні |
| storeAlert | отримує повідомлення сповіщення та зберігає його у вказаній вами змінній |
| storeAlertPresent | повертає TRUE, якщо сповіщення присутнє, FALSE інакше |
|
verifyAlert verifyNotAlert |
отримує повідомлення сповіщення та перевіряє, чи воно дорівнює вказаному вами рядковому значенню |
|
verifyAlertPresent verifyAlertNotPresent |
перевіряє наявність сповіщення чи ні |
Під час роботи зі сповіщеннями пам’ятайте про ці дві речі:
- Selenium IDE автоматично натискає кнопку OK у вікні сповіщення, тому ви не зможете побачити саме сповіщення.
- Selenium IDE не може обробляти сповіщення, що спрацьовують усередині функції onload() сторінки. Воно обробляє лише сповіщення, що генеруються після повного завантаження сторінки.
У цьому прикладі ми використовуємо команду storeAlert, щоб показати, що навіть якщо Selenium IDE не відобразило фактичне сповіщення, але все ж змогло отримати повідомлення.
Крок 1) In Selenium IDE, встановити базу URL на http://jsbin.com. Повний URL це http://jsbin.com/usidix. Ці фрагменти jsbin датуються Firefox-плагінів, і вони можуть більше не вирішуватися; будь-яка сторінка з кнопкою, яка викликає сповіщення, відтворює той самий результат.
Крок 2) Створіть скрипт, як показано нижче. Команда click впливає на кнопку Go!, storeAlert записує повідомлення в alertMessage, а echo виводить його.
Крок 3) Виконайте скрипт і не очікуйте побачити фактичне сповіщення. Панель журналу нижче відображає записане повідомлення, хоча діалогове вікно ніколи не було видно.
Confirmations
Підтвердження – це спливаючі вікна з кнопками «ОК» та «СКАСУВАТИ», на відміну від сповіщень, які містять лише кнопку «ОК». Команди, які можна використовувати для обробки підтверджень, ідентичні командам сповіщень.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- storeConfirmation
- storeConfirmationPresent
- перевіритиПідтвердження / перевіритиНеПідтвердження
- перевіритиПідтвердженняНаявності / перевіритиПідтвердженняНеНаявності
Крім того, ці команди повідомляють Selenium яку кнопку вибрати, OK чи СКАСУВАТИ.
- chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
- виберіть «Скасувати наступне підтвердження».
Розмістіть ці команди перед тим команда, яка активує вікно підтвердження, щоб Selenium IDE заздалегідь знає, який варіант обрати. Знову ж таки, ви не побачите фактичного вікна підтвердження під час виконання скрипта.
Давайте перевіримо веб-сторінку з кнопкою, яка була закодована так, щоб повідомляти, чи натиснув користувач OK чи СКАСУВАТИ.
Крок 1) In Selenium IDE, встановити базу URL на http://jsbin.com. Повний URL це http://jsbin.com/enifaf.
Крок 2) Створіть скрипт, як показано нижче. Цього разу ми спочатку натиснемо кнопку OK.
Крок 3) Виконайте скрипт і зверніть увагу, що ви не бачите фактичного підтвердження, але веб-сторінка все ще повідомляє, яку кнопку натиснути. Selenium Натиснуто IDE.
Крок 4) Замініть команду chooseOkOnNextConfirmation на chooseCancelOnNextConfirmation та виконайте скрипт ще раз. Тепер сторінка повідомляє про протилежний вибір.
множинний Windows
Якщо ви натискаєте посилання, яке відкриває окреме вікно, спочатку потрібно вказати Selenium IDE для вибору цього вікна, перш ніж ви зможете отримати доступ до елементів усередині нього. У застарілому IDE ви використовуєте заголовок вікна як його локатор.
Ми використовуємо команду selectWindow для перемикання між вікнами.
Ми використовуватимемо посилання http://jsbin.com/ocinaj/1 під назвою «Перше вікно». Гіперпосилання «тут» на цій сторінці відкриває Facebook у новому вікні, після чого ми даємо інструкції Selenium IDE, щоб зробити наступне:
- Передати керування з батьківського вікна до щойно запущеного вікна Facebook за допомогою команди selectWindow, вказавши заголовок вікна як локатор.
- Перевірте заголовок нового вікна.
- Знову виберіть оригінальне вікно за допомогою команди selectWindow, вказавши цільове значення «null».
- Перевірте заголовок вибраного вікна.
Наведений вище план перетворюється на послідовність із чотирьох кроків, показану тут.
Крок 1) Встановіть основу URL на http://jsbin.com.
Крок 2) Створіть сценарій, як показано нижче.
Нам потрібна команда pause, щоб дочекатися завантаження щойно запущеного вікна, перш ніж ми зможемо прочитати його заголовок.
Крок 3) Виконайте сценарій. Зауважте, що тестовий випадок пройдено, тобто ми змогли перемикатися між вікнами та успішно перевіряти їхні заголовки.
Завжди пам’ятайте, що встановлення значення «null» для цільового значення selectWindow автоматично вибирає батьківське вікно — у цьому випадку вікно, де знаходиться елемент «link=here».
Примітка: Facebook змінив назву своєї сторінки з моменту створення цього посібника. Відповідно змініть очікувану назву у скрипті.
Modern Selenium Еквіваленти цих команд в IDE
Команда Firefox-plugin IDE було припинено підтримку, коли Firefox переміщено до архітектури WebExtensions та поточного Chrome, Firefox а розширення Edge перейменувало більшість команд Selenese на інтервальну форму. Поведінка не змінилася, тому таблиці нижче достатньо, щоб прочитати наведені вище скрипти для поточної інсталяції.
| Застаріла команда в цьому посібнику | Поточний Selenium Команда IDE |
|---|---|
| зберігати | зберігати |
| нудьгувати | нудьгувати |
| магазинТекст | текст магазину |
| storeElementPresent | збереження присутності елемента (або підтвердження присутності елемента) |
| assertAlert / verifyAlert | підтвердження сповіщення / підтвердження сповіщення |
| chooseOkOnNextConfirmation | виберіть «ОК» при наступному підтвердженні |
| виберіть «Скасувати наступне підтвердження». | виберіть «Скасувати» при наступному підтвердженні |
| selectWindow (ціль — заголовок) | вибрати вікно з handle=${handle} |
Варто зазначити дві відмінності. Підказки, які не розглядалися в попередній статті, тепер мають власні команди: відповідь на наступний запит планує відповідь до появи діалогового вікна, та відповідь webdriver у видимому запиті вводить у вже відкрите вікно. А перемикання вікон більше не залежить від заголовка сторінки. Виконати ручка вікна магазину спочатку захопити дескриптор, а потім передати handle=${вашаДескролл} щоб вибрати вікно. Ця зміна усуває режим помилки, описаний у примітці вище, коли сайт просто перейменовує свою сторінку, і скрипт перестає знаходити вікно. Офіційний Selenium Сайт проекту IDE відображає повний поточний набір команд.













