Uložit proměnné, Echo, Alert, PopUp manipulace v Selenium IDE

⚡ Chytré shrnutí

Uložit příkazy do Selenium IDE ukládá běhové hodnoty do pojmenovaných proměnných, echo je vypisuje do protokolu a specializovaná rodina příkazů zpracovává upozornění, potvrzovací dialogy a přepínání mezi více okny prohlížeče.

  • 🔘 Vytvořte proměnnou: Příkaz store přebírá hodnotu v Target a název proměnné v poli Hodnota.
  • ☑️ Přečtěte si to znovu: Všude, kde příkaz přijímá cíl nebo hodnotu, zabalte název do ${ }.
  • (Tj. Vytiskněte pro ladění: Příkaz echo zapíše literální řetězec nebo proměnnou přímo do logu IDE.
  • 🧪 Upozornění jsou automaticky přijímána: IDE klikne na OK, proto k zachycení textu zprávy použijte storeAlert.
  • 🛠️ Potvrzení vyžadují rozhodnutí: Před příkaz, který otevře dialogové okno, umístěte příkaz chooseOkOnNextConfirmation.
  • 📊 Přepínání oken: selectWindow cílí na název okna a null cíl vrací do nadřazeného okna.

Ukládání proměnných, zpracování ozvěn, upozornění a vyskakovacích oken do Selenium IDE

V tomto tutoriálu se naučíte příkazy store, příkaz echo a práci s upozorněními a vyskakovacími okny. Selenium IDETyto příkazy dohromady promění pevně zaznamenaný skript ve skript, který reaguje na cokoli, co aplikace vrátí za běhu.

⚠️ Poznámka k verzím: Níže uvedené snímky obrazovky pocházejí z originálu Firefox-plugin Selenium IDE a příkazy používají jeho názvy v camelCase Selenese. Aktuální Chrome, Firefox a rozšíření Edge si zachovává stejné chování, ale většinu názvů příkazů zapisuje s mezerami. Mapaping Tabulka se zobrazí ke konci tohoto článku a každý původní příkaz a snímek obrazovky je zachován tak, jak byl publikován.

Selenium Proměnné IDE

Obchod

Chcete-li uložit proměnné Selenium IDE, používáme uložit příkaz. Níže uvedený obrázek ukládá hodnotu „tutorial“ do proměnné s názvem „myVariable“.

Selenium Příkaz IDE store s tutoriálem o hodnotě uloženým do myVariable

Pro přístup k proměnné ji jednoduše uzavřete do symbolu ${ … }. Například pro zadání hodnoty „myVariable“ do textového pole „userName“ v Mercury Prohlídky, do pole Hodnota zadejte ${myVariable}.

Selenium Příkaz typu IDE s použitím ${myVariable} v poli Value textového pole userName

Příkaz Echo v Selenium IDE

Uložená proměnná je neviditelná, dokud ji něco nevypíše, a to je to, co minout příkaz to dělá. Během přehrávání zapíše zprávu do panelu protokolu IDE, což z něj činí nejrychlejší způsob, jak ověřit, zda příkaz store zachytil očekávání, než na něm vytvoříte asserce.

Příkaz přijímá jeden z těchto formátů:

  • Doslovný řetězec. Vložte text do Target pole, například Krok přihlášení dokončen, pro označení kontrolního bodu v dlouhém skriptu.
  • Proměnná. Vložte ${myVariable} do Target pole a místo názvu se vypíše uložená hodnota.

Dva zvyky dělají příkaz echo mnohem užitečnějším, než se na první pohled zdá. Vytiskněte proměnnou ihned za příkazem store, který ji vytváří, takže selhání je... track zachycení, nikoli k aserci o dvacet kroků dále. A před každou zprávu přidejte krok, ke kterému patří, protože panel protokolu zobrazuje všechny příkazy v jednom plochém seznamu. Všimněte si, že echo zapisuje pouze do protokolu – nikdy nezmění stránku a nikdy neselže test, takže je bezpečné jej ve skriptu trvale ponechat.

StoreElementPresent

Tento příkaz ukládá buď „true“, nebo „false“ v závislosti na přítomnosti zadaného prvku. Následující skript ukládá booleovskou hodnotu „true“ do „var1“ a „false“ do „var2“. Pro ověření použijeme příkaz echo k zobrazení hodnot var1 a var2. Základ URL pro níže uvedenou ilustraci byla nastavena na Mercury Domovská stránka prohlídek.

Selenium IDE storeElementPresent ukládá hodnotu true do var1 a hodnotu false do var2, což se odráží v protokolu.

StoreText

Tento příkaz se používá k uložení vnitřního textu elementu do proměnné. Níže uvedený obrázek ukládá vnitřní text tagu h1 na registrační stránce Facebooku do proměnné s názvem „textVar“.

Selenium Příkaz storeText v IDE čte css=h1 do proměnné textVar

Protože se jedná o jediný prvek svého druhu na stránce, můžeme bezpečně použít „css=h1“ jako náš cíl. Obrázek níže to ukazuje. Selenium IDE dokázalo uložit řetězec „Sign Up“ do proměnné „textVar“, protože echo správně vypsalo její hodnotu.

Selenium Tisk podokna protokolu IDE Zaregistrovat se jako hodnota uložená v textVar

Upozornění, vyskakovací okna a vícenásobné Windows

Upozornění jsou pravděpodobně nejjednodušší formou vyskakovacího okna. Nejběžnější Selenium Příkazy IDE používané při zpracování výstrah jsou následující:

Upozornění použití

sustainAlert

claimNotAlert

načte zprávu upozornění a porovná ji s zadanou řetězcovou hodnotou

sustainAlertPresent

claimAlertNotPresent

potvrzuje, zda je přítomno upozornění či nikoli
storeAlert načte výstražnou zprávu a uloží ji do proměnné, kterou zadáte
storeAlertPresent vrací TRUE, pokud je přítomno upozornění, jinak FALSE

ověřitAlert

ověřitNotAlert

načte zprávu upozornění a ověří, zda se rovná zadané hodnotě řetězce.

ověřitAlertPresent

ověřitAlertNotPresent

ověřuje, zda je přítomno upozornění či nikoli

Při práci s upozorněními pamatujte na tyto dvě věci:

  • Selenium IDE automaticky klikne na tlačítko OK v okně s upozorněním, takže samotné upozornění neuvidíte.
  • Selenium IDE nedokáže zpracovat upozornění, která se spustí uvnitř funkce onload() stránky. Zpracovává pouze upozornění generovaná po úplném načtení stránky.

V tomto příkladu používáme příkaz storeAlert k ukázání, že i když Selenium IDE sice nezobrazilo samotné upozornění, ale zprávu bylo stále schopno načíst.

Krok 1) In Selenium IDE, nastavte základnu URL na http://jsbin.com. Celý text URL je http://jsbin.com/usidix. Tyto úryvky jsbin pocházejí z Firefox-plugin éry a nemusí se již vyřešit; jakákoli stránka s tlačítkem, které vyvolá upozornění, reprodukuje stejný výsledek.

Krok 2) Vytvořte skript, jak je znázorněno níže. Příkaz click cílí na tlačítko Go!, storeAlert zachytí zprávu do alertMessage a echo ji vypíše.

Selenium Skript IDE s příkazy click, storeAlert a echo proti demo stránce jsbin alertů

Krok 3) Spusťte skript a neočekávejte zobrazení skutečného upozornění. V níže uvedeném panelu protokolu se zobrazuje zachycená zpráva, i když dialogové okno nebylo viditelné.

Selenium Záznam IDE zobrazující text upozornění načtený funkcí storeAlert po přehrání

Potvrzení

Potvrzení jsou vyskakovací okna s tlačítky OK a ZRUŠIT, na rozdíl od upozornění, která zobrazují pouze tlačítko OK. Příkazy, které můžete použít při zpracování potvrzení, jsou stejné jako příkazy upozornění.

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • storeConfirmation
  • storeConfirmationPresent
  • ověřitPotvrzení / ověřitNepotvrzení
  • ověřitPotvrzeníPřítomné / ověřitPotvrzeníNepřítomné

Kromě toho tyto příkazy sdělují Selenium které tlačítko zvolit, OK nebo STORNO.

  • chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
  • zvolteCancelOnNextConfirmation

Umístěte tyto příkazy před příkaz, který spustí potvrzovací okno, aby Selenium IDE předem ví, kterou možnost zvolit. Během provádění skriptu se opět nezobrazí potvrzovací okno.

Otestujme webovou stránku s tlačítkem, které bylo naprogramováno tak, aby hlásilo, zda uživatel stiskl OK nebo STORNO.

Krok 1) In Selenium IDE, nastavte základnu URL na http://jsbin.com. Celý text URL je http://jsbin.com/enifaf.

Krok 2) Vytvořte skript, jak je znázorněno níže. Tentokrát nejprve stiskneme tlačítko OK.

Selenium Skript IDE umisťující chooseOkOnNextConfirmation před kliknutím, kterým se otevře dialog

Krok 3) Spusťte skript a všimněte si, že se nezobrazuje skutečné potvrzení, ale webová stránka stále hlásí, které tlačítko Selenium Stisknuto IDE.

Testovací stránka hlásí, že bylo stisknuto tlačítko OK v potvrzovacím dialogu.

Krok 4) Nahraďte příkaz chooseOkOnNextConfirmation příkazem chooseCancelOnNextConfirmation a spusťte skript znovu. Stránka nyní hlásí opačnou volbu.

Selenium Skript IDE upraven tak, aby používal chooseCancelOnNextConfirmation místo chooseOkOnNextConfirmation.

Násobek Windows

Pokud kliknete na odkaz, který otevře samostatné okno, musíte nejprve zadat pokyny Selenium IDE pro výběr daného okna před přístupem k prvkům uvnitř něj. Ve starším IDE se jako lokátor používá název okna.

Pro přepínání mezi okny používáme příkaz selectWindow.

Použijeme odkaz http://jsbin.com/ocinaj/1 s názvem „První okno“. Hypertextový odkaz „zde“ na této stránce otevře Facebook v novém okně a poté dáme pokyny Selenium IDE pro následující:

  • Přeneste řízení z nadřazeného okna do nově spuštěného okna Facebooku pomocí příkazu selectWindow s názvem okna jako lokátorem.
  • Ověřte název nového okna.
  • Původní okno znovu vyberte pomocí příkazu selectWindow s cílem „null“.
  • Ověřte název aktuálně vybraného okna.

Výše uvedený plán se promítá do zde uvedené čtyřkrokové sekvence.

Schéma přepnutí z nadřazeného okna do nového okna a zpět

Krok 1) Nastavte základnu URL na http://jsbin.com.

Krok 2) Vytvořte skript, jak je znázorněno níže.

Selenium IDE skript používající selectWindow, pause a verifyTitle pro pohyb mezi dvěma okny

Příkaz pause potřebujeme k vyčkání načtení nově spuštěného okna, než si budeme moci přečíst jeho název.

Krok 3) Spusťte skript. Všimněte si, že modelový případ úspěšně proběhlo, což znamená, že jsme byli schopni přepínat mezi okny a úspěšně ověřit jejich názvy.

Výsledek průchodu zelenou Selenium IDE po ověření obou názvů oken

Vždy pamatujte, že nastavení cíle selectWindow na „null“ automaticky vybere nadřazené okno – v tomto případě okno, ve kterém se nachází element „link=here“.

Poznámka: Facebook od vytvoření tohoto tutoriálu změnil název své stránky. Upravte odpovídajícím způsobem očekávaný název ve skriptu.

moderní Selenium Ekvivalenty těchto příkazů v IDE

Jedno Firefox-plugin IDE bylo vyřazeno z provozu, když Firefox přesunuto na architekturu WebExtensions a aktuální Chrome, Firefox a rozšíření Edge přejmenovalo většinu příkazů Selenese na řádkovaný tvar. Chování se nezměnilo, takže níže uvedená tabulka je vše, co potřebujete k přečtení výše uvedených skriptů v aktuální instalaci.

Starší příkaz v tomto tutoriálu Selenium Příkaz IDE
uložit uložit
minout minout
obchodText uložit text
storeElementPresent uložit prvek přítomný (nebo potvrdit prvek přítomný)
assertAlert / verifyAlert uplatnění upozornění / ověření upozornění
chooseOkOnNextConfirmation při dalším potvrzení zvolte OK
zvolteCancelOnNextConfirmation při dalším potvrzení zvolte zrušení
selectWindow (cíl jako název) vyberte okno s handle=${handle}

Za zmínku stojí dva rozdíly. Prompts (názvy), kterými se starší článek nezabývá, nyní mají své vlastní příkazy: odpověď na další výzvu plánuje odpověď před zobrazením dialogu a Odpověď webdriveru na viditelné výzvě zadá do již otevřeného příkazového řádku. A přepínání oken se již nespoléhá na název stránky. Spusťte klika okna obchodu nejprve zachytit úchyt a poté přihrát handle=${vaseHandle} vybrat okno. Tato změna odstraňuje režim selhání popsaný ve výše uvedené poznámce, kdy web jednoduše přejmenuje svou stránku a skript přestane okno hledat. Oficiální Selenium Web projektu IDE vypíše kompletní aktuální sadu příkazů.

Nejčastější dotazy

Ano. ${myVariable} a ${myvariable} odkazují na dvě různé proměnné a odkaz na tu, která nikdy nebyla uložena, se vrátí na prázdný řetězec, místo aby vyvolal chybu. Dodržujte jednotnou konvenci pojmenování v celé sadě, abyste se vyhnuli tichým mezerám.

Ano. Syntaxe ${ } je rozšířena v libovolném Target nebo pole Hodnota, takže funguje uvnitř příkazu open, XPath nebo selektoru CSS. Takto se nahraný skript přemění na skript řízený daty zachycenými dříve během běhu.

Selenese nemá žádné matematické operátory. Použijte příkaz execute script s malým JavaVýraz skriptu, který čte proměnnou a vrací výsledek, a poté ukládá tuto návratovou hodnotu. Nezapomeňte, že každá uložená hodnota přichází jako řetězec, proto ji nejprve převeďte.

Považujte je za lokální pro jeden test. Spoléhání se na hodnotu nastavenou dřívějším testem činí pořadí sad závislým na testovacím pořadí a obtížně laditelným, proto uložte, co test potřebuje, do daného testu nebo si to na začátku přečtěte z datového souboru.

Výzva potřebuje text, ne jen volbu tlačítka. Spusťte odpověď na další výzvu s odpovědí v poli Hodnota před příkazem, který ji otevře, nebo použijte odpověď webdriveru na viditelné výzvě, když je dialogové okno již na obrazovce.

Nástroje strojového učení dokáží navrhnout sekvenci příkazů z popisu scénáře v jednoduchém jazyce a navrhnout robustnější lokátory, než jaké vytváří záznamník. Pomáhá také oprava lokátoru s pomocí umělé inteligence, protože přejmenovaný prvek je obvyklým důvodem, proč se uložená hodnota vrátí prázdná.

Ano. Exportovat test do Java or Python, pak nechte Copilota refaktorovat seznam plochých příkazů do objektů stránek a opakovaně použitelných čekacích funkcí. Zkontrolujte ruční zpracování upozornění, protože vygenerovaný kód často předpokládá viditelný dialog, který již IDE zavřelo.

Výběr na základě názvu se stává nejednoznačným a může být vybráno nesprávné okno. Přesně proto současné IDE preferuje handle: zachytit jeden s úložištěm handle okna hned po otevření okna a poté přepnout s handle=${yourHandle}.

Shrňte tento příspěvek takto: