Lagra variabler, Echo, Alert, PopUp-hantering i Selenium IDE

โšก Smart sammanfattning

Lagra kommandon i Selenium IDE sparar runtime-vรคrden i namngivna variabler, echo skriver ut dem till loggen och en dedikerad kommandofamilj hanterar varningar, bekrรคftelsedialogrutor och vรคxling mellan flera webblรคsarfรถnster.

  • ๐Ÿ”˜ Skapa en variabel: Kommandot store tar vรคrdet i Target och variabelnamnet i Value.
  • โ˜‘๏ธ Lรคs det tillbaka: Linda in namnet i ${ } dรคr ett kommando accepterar ett mรฅl eller ett vรคrde.
  • โœ… Skriv ut fรถr felsรถkning: echo skriver en literal strรคng eller en variabel direkt in i IDE-loggen.
  • ๐Ÿงช Aviseringar accepteras automatiskt: IDE:n klickar OK รฅt dig, sรฅ anvรคnd storeAlert fรถr att fรฅnga meddelandetexten.
  • ๐Ÿ› ๏ธ Bekrรคftelser krรคver ett beslut: Placera chooseOkOnNextConfirmation fรถre kommandot som รถppnar dialogrutan.
  • ๐Ÿ“Š Fรถnsterbyte: selectWindow riktar sig mot en fรถnstertitel, och ett null-mรฅl returnerar till det รถverordnade fรถnstret.

Lagra variabler, eko-, varnings- och popup-hantering i Selenium IDE

I den hรคr handledningen lรคr du dig kommandona store, echo-kommandot och hantering av varningar och popup-fรถnster. Selenium IDETillsammans omvandlar dessa kommandon ett fast inspelat skript till ett som reagerar pรฅ vad programmet returnerar vid kรถrning.

โš ๏ธ En anmรคrkning om versioner: Skรคrmdumparna nedan kommer frรฅn originalet Firefox-plugin Selenium IDE, och kommandona anvรคnder dess camelCase Selenese-namn. Den nuvarande Chrome, Firefox och Edge-tillรคgget behรฅller samma beteende men skriver de flesta kommandonamn med mellanslag. En kartaping Tabellen visas nรคra slutet av den hรคr artikeln, och alla ursprungliga kommandon och skรคrmdumpar bevaras som publicerade.

Selenium IDE-variabler

HITTA BUTIK

Fรถr att lagra variabler i Selenium IDE, vi anvรคnder lagra kommandot. Illustrationen nedan lagrar vรคrdet โ€tutorialโ€ till en variabel med namnet โ€myVariableโ€.

Selenium IDE-lagrakommando med vรคrdehandledningen sparad i myVariable

Fรถr att komma รฅt variabeln, omge den helt enkelt med symbolen ${ โ€ฆ }. Om du till exempel vill ange vรคrdet fรถr "minVariabel" i textrutan "Anvรคndarnamn" i Mercury Tours, ange ${myVariable} i fรคltet Vรคrde.

Selenium IDE-typkommando med ${myVariable} i vรคrdefรคltet i textrutan anvรคndarnamn

Ekokommando i Selenium IDE

En lagrad variabel รคr osynlig tills nรฅgot skriver ut den, och det รคr vad missar kommandot gรถr. Det skriver ett meddelande i IDE-loggfรถnstret under uppspelning, vilket gรถr det till det snabbaste sรคttet att bekrรคfta att ett store-kommando fรฅngade det du fรถrvรคntade dig innan du bygger assertions ovanpรฅ det.

Kommandot accepterar bรฅda formerna:

  • En bokstavlig strรคng. Sรคtt texten i Target fรคlt, till exempel Inloggningssteget รคr klart, fรถr att markera en kontrollpunkt i ett lรฅngt skript.
  • En variabel. Sรคtt ${myVariable} i Target fรคltet och det lagrade vรคrdet skrivs ut istรคllet fรถr namnet.

Tvรฅ vanor gรถr echo mycket mer anvรคndbart รคn det fรถrst verkar. Skriv ut en variabel omedelbart efter store-kommandot som skapar den, sรฅ ett fel รคr traced till avbildningen snarare รคn till pรฅstรฅendet tjugo steg senare. Och lรคgg prefixet fรถr varje meddelande med det steg det tillhรถr, eftersom loggfรถnstret visar varje kommando i en platt lista. Observera att echo bara skriver till loggen โ€” den รคndrar aldrig sidan och misslyckas aldrig med ett test, sรฅ det รคr sรคkert att lรคmna kvar i ett skript permanent.

StoreElementPresent

Detta kommando lagrar antingen "true" eller "false" beroende pรฅ nรคrvaron av det angivna elementet. Skriptet nedan lagrar det booleska vรคrdet "true" till "var1" och "false" till "var2". Fรถr att verifiera anvรคnder vi echo-kommandot fรถr att visa vรคrdena fรถr var1 och var2. Basen URL fรถr illustrationen nedan var instรคlld pรฅ Mercury Tours hemsida.

Selenium IDE storeElementPresent sparar sant fรถr var1 och falskt fรถr var2, upprepas i loggen

StoreText

Det hรคr kommandot anvรคnds fรถr att lagra den inre texten i ett element i en variabel. Illustrationen nedan lagrar den inre texten i h1-taggen pรฅ Facebooks registreringssida i en variabel med namnet "textVar".

Selenium IDE storeText-kommandot lรคser css=h1 in i variabeln textVar

Eftersom det รคr det enda elementet i sitt slag pรฅ sidan รคr det sรคkert att anvรคnda "css=h1" som mรฅl. Bilden nedan visar det. Selenium IDE kunde spara strรคngen "Registrera dig" i variabeln "textVar", eftersom echo skrev ut dess vรคrde korrekt.

Selenium IDE-loggrutans utskrift Registrera dig som vรคrdet lagrat i textVar

Alerts, Popup och Multiple Windows

Aviseringar รคr fรถrmodligen den enklaste formen av popup-fรถnster. Den vanligaste Selenium IDE-kommandon som anvรคnds fรถr att hantera varningar รคr fรถljande:

Varningar du anvรคnder

assertAlert

assertNotAlert

hรคmtar meddelandet frรฅn varningen och bekrรคftar det mot ett strรคngvรคrde som du angav

assertAlertPresent

assertAlertNotPresent

avgรถr om en varning fรถreligger eller inte
storeAlert hรคmtar varningsmeddelandet och lagrar det i en variabel som du anger
storeAlertPresent returnerar SANT om en varning fรถreligger, annars FALSKT

verifyAlert

verifyNotAlert

hรคmtar meddelandet frรฅn varningen och verifierar om det รคr lika med det strรคngvรคrde du angav

verifyAlertPresent

verifyAlertNotPresent

verifierar om en varning finns eller inte

Kom ihรฅg dessa tvรฅ saker nรคr du arbetar med varningar:

  • Selenium IDE klickar automatiskt pรฅ OK-knappen i varningsfรถnstret, sรฅ du kommer inte att kunna se sjรคlva varningen.
  • Selenium IDE kan inte hantera varningar som utlรถses inuti sidans onload()-funktion. Den hanterar bara varningar som genereras efter att sidan har laddats helt.

I det hรคr exemplet anvรคnder vi storeAlert-kommandot fรถr att visa att รคven om Selenium IDE visade inte den faktiska varningen, men den kunde fortfarande hรคmta meddelandet.

Steg 1) In Selenium IDE, stรคll in basen URL till http://jsbin.com. Den fullstรคndiga URL รคr http://jsbin.com/usidix. Dessa jsbin-kodavsnitt รคr frรฅn Firefox-plugin-eran och kanske inte lรคngre lรถses; alla sidor med en knapp som utlรถser en varning reproducerar samma resultat.

Steg 2) Skapa skriptet som visas nedan. Kommandot click riktar in sig pรฅ Go!-knappen, storeAlert sparar meddelandet i alertMessage och echo skriver ut det.

Selenium IDE-skript med kommandona click, storeAlert och echo mot jsbin-varningsdemosidan

Steg 3) Kรถr skriptet och fรถrvรคnta dig inte att se sjรคlva varningen. Loggfรถnstret nedan visar det inspelade meddelandet trots att dialogrutan aldrig var synlig.

Selenium IDE-logg som visar varningstexten som hรคmtats av storeAlert efter uppspelning

bekrรคftelser

Bekrรคftelser รคr popup-fรถnster som visar knapparna OK och AVBRYT, till skillnad frรฅn aviseringar som bara visar OK-knappen. Kommandona du kan anvรคnda fรถr att hantera bekrรคftelser speglar aviseringskommandona.

  • hรคvdaBekrรคftelse / hรคvdaInteBekrรคftelse
  • hรคvdaBekrรคftelseNรคrvarande / hรคvdaBekrรคftelseInteNรคrvarande
  • butiksbekrรคftelse
  • storeConfirmationPresent
  • verifieraBekrรคftelse / verifieraInteBekrรคftelse
  • verifieraBekrรคftelseNรคrvarande / verifieraBekrรคftelseNรคrvarandeEj

Dessutom berรคttar dessa kommandon Selenium vilken knapp du ska vรคlja, OK eller AVBRYT.

  • vรคljOkPรฅNรคstaBekrรคftelse / vรคljOkPรฅNรคstaBekrรคftelseOchVรคnta
  • vรคljCancelOnNextConfirmation

Placera dessa kommandon innan kommandot som utlรถser bekrรคftelserutan, sรฅ att Selenium IDE vet i fรถrvรคg vilket alternativ det ska vรคlja. ร…terigen, du kommer inte att se den faktiska bekrรคftelserutan under skriptkรถrningen.

Lรฅt oss testa en webbsida med en knapp som var kodad fรถr att rapportera om anvรคndaren tryckte pรฅ OK eller AVBRYT.

Steg 1) In Selenium IDE, stรคll in basen URL till http://jsbin.com. Den fullstรคndiga URL รคr http://jsbin.com/enifaf.

Steg 2) Skapa skriptet som visas nedan. Den hรคr gรฅngen trycker vi fรถrst pรฅ OK-knappen.

Selenium IDE-skript placerar chooseOkOnNextConfirmation fรถre klicket som รถppnar dialogrutan

Steg 3) Kรถr skriptet och observera att du inte ser den faktiska bekrรคftelsen, men webbsidan rapporterar fortfarande vilken knapp Selenium IDE nedtryckt.

Testsida som rapporterar att OK-knappen i bekrรคftelsedialogrutan trycktes ned

Steg 4) Ersรคtt kommandot chooseOkOnNextConfirmation med chooseCancelOnNextConfirmation och kรถr skriptet igen. Sidan rapporterar nu motsatt val.

Selenium IDE-skript redigerat fรถr att anvรคnda chooseCancelOnNextConfirmation istรคllet fรถr chooseOkOnNextConfirmation

Flera olika Windows

Om du klickar pรฅ en lรคnk som รถppnar ett separat fรถnster mรฅste du fรถrst instruera Selenium IDE fรถr att vรคlja det fรถnstret innan du kan komma รฅt elementen i det. I den รคldre IDE:n anvรคnder du fรถnstrets titel som dess positioner.

Vi anvรคnder kommandot selectWindow fรถr att vรคxla mellan fรถnster.

Vi kommer att anvรคnda lรคnken http://jsbin.com/ocinaj/1, vars titel รคr "Fรถrsta fรถnstret". Hyperlรคnken "hรคr" pรฅ den sidan รถppnar Facebook i ett nytt fรถnster, varefter vi instruerar Selenium IDE fรถr att gรถra fรถljande:

  • ร–verfรถr kontrollen frรฅn moderfรถnstret till det nyligen startade Facebook-fรถnstret med hjรคlp av kommandot selectWindow med fรถnstertiteln som sรถkare.
  • Verifiera titeln pรฅ det nya fรถnstret.
  • Markera det ursprungliga fรถnstret igen med hjรคlp av kommandot selectWindow med "null" som mรฅl.
  • Verifiera titeln pรฅ det valda fรถnstret.

Planen ovan รถversรคtts till den fyrstegssekvens som visas hรคr.

Diagram รถver vรคxlingen frรฅn moderfรถnstret till det nya fรถnstret och tillbaka igen

Steg 1) Stรคll in basen URL till http://jsbin.com.

Steg 2) Skapa skriptet som visas nedan.

Selenium IDE-skript med selectWindow, pause och verifyTitle fรถr att vรคxla mellan tvรฅ fรถnster

Vi behรถver kommandot pause fรถr att vรคnta pรฅ att det nyligen startade fรถnstret laddas innan vi kan lรคsa dess titel.

Steg 3) Kรถr skriptet. Lรคgg mรคrke till att testfall godkรคnd, vilket innebรคr att vi kunde vรคxla mellan fรถnster och verifiera deras titlar.

Grรถn omkรถrning resulterar i Selenium IDE efter att bรฅda fรถnstertitlarna verifierats

Kom alltid ihรฅg att om du stรคller in selectWindow-mรฅlet till "null" automatiskt vรคljs det รถverordnade fรถnstret โ€“ i det hรคr fallet fรถnstret dรคr elementet "link=here" finns.

Obs: Facebook har รคndrat sin sidtitel sedan den hรคr handledningen skapades. ร„ndra den fรถrvรคntade titeln i skriptet dรคrefter.

Modern Konst Selenium IDE-ekvivalenter till dessa kommandon

Ocuco-landskapet Firefox-plugin IDE togs ur bruk nรคr Firefox flyttade till WebExtensions-arkitekturen och den nuvarande Chrome, Firefox och Edge-tillรคgget dรถpte om de flesta Selenese-kommandon till ett radavstรฅnd. Beteendet รคr ofรถrรคndrat, sรฅ tabellen nedan รคr allt du behรถver fรถr att lรคsa skripten ovan mot en aktuell installation.

ร„ldre kommando i den hรคr handledningen Aktuella Selenium IDE-kommando
lagra lagra
missar missar
butikstext butikstext
storeElementPresent lagra element nรคrvarande (eller hรคvda element nรคrvarande)
assertAlert / verifieraAlert hรคvda varning / verifiera varning
vรคljOkVidNรคstaBekrรคftelse vรคlj ok vid nรคsta bekrรคftelse
vรคljCancelOnNextConfirmation vรคlj avbryt vid nรคsta bekrรคftelse
selectWindow (titel som mรฅl) vรคlj fรถnster med handle=${handle}

Tvรฅ skillnader รคr vรคrda att nรคmna. Uppmaningar, som den รคldre artikeln inte tar upp, har nu egna kommandon: svar pรฅ nรคsta uppmaning planerar svaret innan dialogrutan visas, och webdriver-svar vid synlig prompt skriver in i en prompt som redan รคr รถppen. Och fรถnsterbytet รคr inte lรคngre beroende av sidtiteln. handtag fรถr butiksfรถnster att fรถrst fรฅnga ett handtag, sedan skicka handtag=${dittHandtag} fรถr att vรคlja fรถnster. Den รคndringen tar bort fellรคget som beskrivs i noteringen ovan, dรคr en webbplats helt enkelt byter namn pรฅ sin sida och skriptet slutar hitta fรถnstret. Den officiella Selenium IDE-projektets webbplats listar den fullstรคndiga aktuella kommandouppsรคttningen.

Vanliga frรฅgor

Ja. ${myVariable} och ${myvariable} refererar till tvรฅ olika variabler, och att referera till en som aldrig lagrades resulterar i en tom strรคng istรคllet fรถr att generera ett fel. Behรฅll en enda namngivningskonvention รถver en sviten fรถr att undvika tysta mellanslag.

Ja. ${ }-syntaxen expanderas i alla Target eller Vรคrde-fรคltet, sรฅ det fungerar inuti ett รถppet kommando, en XPath eller en CSS-vรคljare. Det รคr sรฅ ett inspelat skript omvandlas till ett som drivs av data som samlats in tidigare i kรถrningen.

Selenese har inga matematiska operatorer. Anvรคnd kommandot execute script med en liten JavaSkriptuttryck som lรคser variabeln och returnerar resultatet, och sedan lagrar det returnerade vรคrdet. Kom ihรฅg att varje lagrat vรคrde anlรคnder som en strรคng, sรฅ konvertera det fรถrst.

Behandla dem som lokala fรถr ett enskilt test. Att fรถrlita sig pรฅ ett vรคrde som satts av ett tidigare test gรถr sviten ordningsberoende och svรฅr att felsรถka, sรฅ lagra vad ett test behรถver inuti det testet, eller lรคs det frรฅn en datafil i bรถrjan.

En prompt behรถver text, inte bara ett knappval. Kรถr svaret vid nรคsta prompt med svaret i fรคltet Vรคrde fรถre kommandot som รถppnar det, eller anvรคnd webdriver-svaret vid den synliga prompten nรคr dialogrutan redan visas pรฅ skรคrmen.

Maskininlรคrningsverktyg kan fรถreslรฅ en kommandosekvens frรฅn en tydlig beskrivning av ett scenario och fรถreslรฅ robustare positionerare รคn vad en inspelare producerar. AI-assisterad positionerreparation hjรคlper ocksรฅ, eftersom ett omdรถpt element รคr den vanliga anledningen till att ett lagrat vรคrde visas tomt.

Ja. Exportera testet till Java or Pythonoch lรฅt sedan Copilot omstrukturera den platta kommandolistan till sidobjekt och รฅteranvรคndbara vรคntetider. Kontrollera varningshanteringen manuellt, eftersom genererad kod ofta antar en synlig dialogruta som IDE:n redan har ignorerat.

Titelbaserat val blir tvetydigt och fel fรถnster kan vรคljas. Det รคr just dรคrfรถr den nuvarande IDE: spara ett fรถnster med handtag direkt efter att fรถnstret รถppnas, vรคxla sedan med handle=${yourHandle}.

Sammanfatta detta inlรคgg med: