Съхраняване на променливи, ехо, предупреждение, обработка на изскачащи прозорци Selenium IDE
⚡ Умно обобщение
Съхранявайте команди в Selenium IDE запазва стойностите по време на изпълнение в именувани променливи, echo ги отпечатва в лога, а специално семейство команди обработва предупреждения, диалози за потвърждение и превключване между множество прозорци на браузъра.

В този урок ще научите командите store, командата echo и обработката на предупреждения и изскачащи прозорци в Selenium IDEЗаедно тези команди превръщат фиксиран записан скрипт в такъв, който реагира на всичко, което приложението връща по време на изпълнение.
⚠️ Бележка относно версиите: Снимките на екрана по-долу са от оригинала Firefox-плъгин Selenium IDE, а командите използват неговите имена с camelCase Selenese. Текущият Chrome, Firefox и разширението Edge запазва същото поведение, но записва повечето имена на команди с интервали. Картаping Таблицата се появява близо до края на тази статия и всяка оригинална команда и екранна снимка са запазени така, както са публикувани.
Selenium IDE променливи
Магазин
За да съхранявате променливи в Selenium IDE, ние използваме съхраняване на команда. Илюстрацията по-долу съхранява стойността „tutorial“ в променлива с име „myVariable“.
За да получите достъп до променливата, просто я оградете в символ ${ … }. Например, за да въведете стойността на „myVariable“ в текстовото поле „userName“ на Mercury Обиколки, въведете ${myVariable} в полето Стойност.
Команда за ехо в Selenium IDE
Съхранената променлива е невидима, докато нещо не я отпечата, и това е, което ехо командата прави това. Тя записва съобщение в панела с логове на IDE по време на възпроизвеждане, което го прави най-бързият начин да потвърдите, че командата за съхранение е уловила това, което сте очаквали, преди да изградите твърдения върху нея.
Командата приема една от следните форми:
- Буквален низ. Поставете текста в Target поле, например Стъпката за вход е завършена, за да маркирате контролна точка в дълъг скрипт.
- Променлива. Поставете ${myVariable} в Target поле и запаметената стойност се отпечатва вместо името.
Два навика правят echo много по-полезна, отколкото изглежда на пръв поглед. Изведете променлива веднага след командата store, която я създава, така че неуспехът е... tracкъм заснемането, а не към твърдението двадесет стъпки по-късно. И добавете пред всяко съобщение стъпката, към която принадлежи, защото панелът с лога показва всяка команда в един плосък списък. Обърнете внимание, че echo записва само в лога — никога не променя страницата и никога не се проваля на тест, така че е безопасно да го оставите в скрипта за постоянно.
StoreElementPresent
Тази команда съхранява или „true“, или „false“ в зависимост от наличието на посочения елемент. Скриптът по-долу съхранява булевата стойност „true“ в „var1“ и „false“ в „var2“. За да проверим, ще използваме командата echo, за да покажем стойностите на var1 и var2. Базата URL за илюстрацията по-долу беше зададено на Mercury Начална страница на Tours.
StoreText
Тази команда се използва за съхраняване на вътрешния текст на елемент в променлива. Илюстрацията по-долу съхранява вътрешния текст на тага h1 на страницата за регистрация във Facebook в променлива с име „textVar“.
Тъй като това е единственият елемент от този вид на страницата, е безопасно да използваме „css=h1“ като наша цел. Изображението по-долу показва това Selenium IDE успя да запише низа „Sign Up“ в променливата „textVar“, защото echo отпечата стойността му правилно.
Сигнали, изскачащи прозорци и множество Windows
Сигналите са може би най-простата форма на изскачащ прозорец. Най-често срещаният Selenium IDE командите, използвани за обработка на предупреждения, са следните:
| Сигнали | Можете да използвате |
|---|---|
|
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) Изпълнете скрипта и не очаквайте да видите действителното предупреждение. Панелът с лог файлове по-долу показва заснетото съобщение, въпреки че диалоговият прозорец никога не е бил видим.
потвърждения
Потвържденията са изскачащи прозорци, които ви дават бутони „OK“ и „ОТКАЗ“, за разлика от известията, които ви дават само бутон „OK“. Командите, които можете да използвате при обработката на потвърждения, са идентични с командите за известия.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- storeConfirmation
- storeConfirmationPresent
- verifyConfirmation / verifyNotConfirmation
- провериПотвърждениетоНалично / провериПотвърждениетоНеНалично
Освен това, тези команди казват Selenium кой бутон да изберете, OK или CANCEL.
- изберетеOkOnNextConfirmation / изберетеOkOnNextConfirmationAndWait
- изберете CancelOnNextConfirmation
Поставете тези команди преди командата, която задейства полето за потвърждение, така че Selenium IDE знае предварително коя опция да избере. Отново, няма да видите действителния прозорец за потвърждение по време на изпълнението на скрипта.
Нека тестваме уеб страница с бутон, който е кодиран да съобщава дали потребителят е натиснал OK или CANCEL.
Стъпка 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) Изпълнете скрипта. Забележете, че тестов случай премина, което означава, че успяхме да превключваме между прозорците и да проверим успешно техните заглавия.
Винаги помнете, че задаването на целта selectWindow на „null“ автоматично избира родителския прозорец — в този случай прозорецът, където се намира елементът „link=here“.
Забележка: Facebook промени заглавието на страницата си, откакто беше създаден този урок. Променете съответно очакваното заглавие в скрипта.
Модерен дизайн Selenium IDE еквиваленти на тези команди
- Firefox-plugin IDE беше пенсиониран, когато Firefox преместен към архитектурата на WebExtensions и текущия Chrome, Firefox и разширението Edge преименува повечето команди на Selenese във форма с интервали. Поведението е непроменено, така че таблицата по-долу е всичко, от което се нуждаете, за да прочетете горните скриптове спрямо текуща инсталация.
| Стара команда в този урок | АКТУАЛНО Selenium IDE команда |
|---|---|
| съхраняване на | съхраняване на |
| ехо | ехо |
| магазинТекст | текст за съхранение |
| storeElementPresent | запаметяване на наличността на елемент (или утвърждаване на наличността на елемент) |
| assertAlert / verifyAlert | потвърждаване на предупреждение / проверка на предупреждение |
| изберетеОКНаСледващПотвърждение | изберете ОК при следващото потвърждение |
| изберете CancelOnNextConfirmation | изберете „Отказ“ при следващото потвърждение |
| selectWindow (заглавие като цел) | изберете прозорец с handle=${handle} |
Струва си да се отбележат две разлики. Подканите, които не са разгледани в старата статия, вече имат свои собствени команди: отговор на следващия въпрос планира отговора преди да се появи диалоговият прозорец и отговор на webdriver при видима подкана въвежда в подканата, която вече е отворена. И превключването между прозорци вече не зависи от заглавието на страницата. Изпълнете дръжка на витрина на магазина първо да се улови дръжка, след това да се подаде дръжка=${вашатаДръжка} за да изберете прозорец. Тази промяна премахва описания в горната бележка режим на неуспех, при който сайтът просто преименува страницата си и скриптът спира да намира прозореца. Официалният Selenium Сайт на проекта IDE изброява пълния текущ набор от команди.













