Lagre variabler, ekko, varsel, popup-håndtering i Selenium IDE
⚡ Smart oppsummering
Lagre kommandoer i Selenium IDE lagrer kjøretidsverdier i navngitte variabler, echo skriver dem ut til loggen, og en dedikert kommandofamilie håndterer varsler, bekreftelsesdialoger og bytting mellom flere nettleservinduer.

I denne veiledningen lærer du store-kommandoene, echo-kommandoen og håndtering av varsler og popup-vinduer. Selenium IDESammen gjør disse kommandoene et fast innspilt skript om til et som reagerer på det applikasjonen returnerer under kjøring.
⚠️ En merknad om versjoner: Skjermbildene nedenfor kommer fra originalen Firefox-plugin Selenium IDE, og kommandoene bruker dens camelCase Selenese-navn. Den nåværende Chrome, Firefox og Edge-utvidelsen beholder samme oppførsel, men skriver de fleste kommandonavn med mellomrom. En kartping Tabellen vises mot slutten av denne artikkelen, og alle originale kommandoer og skjermbilder er bevart som publiserte.
Selenium IDE-variabler
Butikk
For å lagre variabler i Selenium IDE, vi bruker oppbevare kommando. Illustrasjonen nedenfor lagrer verdien «tutorial» i en variabel med navnet «myVariable».
For å få tilgang til variabelen, sett den ganske enkelt innenfor et ${ … }-symbol. For eksempel, for å skrive inn verdien til «minVariabel» i tekstboksen «brukernavn» i Mercury Tours, skriv inn ${myVariable} i Verdi-feltet.
Ekko-kommando i Selenium IDE
En lagret variabel er usynlig inntil noe skriver den ut, og det er det savner kommandoen gjør. Den skriver en melding i IDE-loggruten under avspilling, noe som gjør den til den raskeste måten å bekrefte at en lagringskommando fanget opp det du forventet før du bygger påstander oppå den.
Kommandoen aksepterer begge former:
- En bokstavelig streng. Sett teksten i Target felt, for eksempel Innloggingstrinn fullført, for å markere et kontrollpunkt i et langt skript.
- En variabel. Sett inn ${myVariable} i Target feltet, og den lagrede verdien skrives ut i stedet for navnet.
To vaner gjør echo mye mer nyttig enn det først ser ut til. Skriv ut en variabel umiddelbart etter store-kommandoen som oppretter den, slik at en feil oppstår. traced til fangsten i stedet for påstanden tjue trinn senere. Og legg prefikset til trinnet den tilhører foran hver melding, fordi loggruten viser hver kommando i én flat liste. Merk at echo bare skriver til loggen – den endrer aldri siden og feiler aldri i en test, så det er trygt å la det stå permanent i et skript.
StoreElementPresent
Denne kommandoen lagrer enten «true» eller «false» avhengig av om det angitte elementet er til stede. Skriptet nedenfor lagrer den boolske verdien «true» til «var1» og «false» til «var2». For å bekrefte bruker vi echo-kommandoen for å vise verdiene til var1 og var2. Basen URL for illustrasjonen nedenfor ble satt til Mercury Turens hjemmeside.
StoreTekst
Denne kommandoen brukes til å lagre den indre teksten til et element i en variabel. Illustrasjonen nedenfor lagrer den indre teksten til h1-taggen på Facebook-registreringssiden i en variabel kalt «textVar».
Siden det er det eneste elementet av sitt slag på siden, er det trygt å bruke «css=h1» som mål. Bildet nedenfor viser det. Selenium IDE kunne lagre strengen «Registrer deg» i variabelen «textVar» fordi echo skrev ut verdien riktig.
Varsler, Popup og Multiple Windows
Varsler er sannsynligvis den enkleste formen for popup-vindu. Den vanligste Selenium IDE-kommandoer som brukes til å håndtere varsler er følgende:
| Varsler | Bruker |
|---|---|
|
assertAlert assertNotAlert |
henter varselmeldingen og bekrefter den mot en strengverdi du spesifiserte |
|
assertAlertPresent assertAlertNotPresent |
bekrefter om et varsel foreligger eller ikke |
| storeAlert | henter varselmeldingen og lagrer den i en variabel du angir |
| storeAlertPresent | returnerer SANN hvis et varsel er tilstede, USANN ellers |
|
verifyAlert verifyNotAlert |
henter varselmeldingen og bekrefter om den er lik strengverdien du anga |
|
verifyAlertPresent verifyAlertNotPresent |
bekrefter om et varsel er til stede eller ikke |
Husk disse to tingene når du arbeider med varsler:
- Selenium IDE klikker automatisk på OK-knappen i varselvinduet, slik at du ikke kan se det faktiske varselet.
- Selenium IDE kan ikke håndtere varsler som utløses i sidens onload()-funksjon. Den håndterer bare varsler som genereres etter at siden er fullstendig lastet inn.
I dette eksemplet bruker vi storeAlert-kommandoen for å vise at selv om Selenium IDE viste ikke selve varselet, men klarte likevel å hente meldingen.
Trinn 1) In Selenium IDE, angi basen URL til http://jsbin.com. Den fullstendige URL er http://jsbin.com/usidix. Disse jsbin-utdragene stammer fra Firefox-plugin-æraen og kan ikke lenger løses; enhver side med en knapp som utløser et varsel gjengir det samme resultatet.
Trinn 2) Lag skriptet som vist nedenfor. click-kommandoen retter seg mot Go!-knappen, storeAlert lagrer meldingen i alertMessage, og echo skriver den ut.
Trinn 3) Kjør skriptet, og forvent ikke å se det faktiske varselet. Loggruten nedenfor viser den innsamlede meldingen selv om dialogboksen aldri var synlig.
Bekreftelser
Bekreftelser er popup-vinduer som gir deg en OK- og en AVBRYT-knapp, i motsetning til varsler, som bare gir deg OK-knappen. Kommandoene du kan bruke til å håndtere bekreftelser speiler varslingskommandoene.
- hevdeBekreftelse / hevdeIkkeBekreftelse
- hevdeBekreftelseNærværende / hevdeBekreftelseIkkeNærværende
- butikkbekreftelse
- storeConfirmationPresent
- verifisereBekreftelse / verifisereIkkeBekreftelse
- verifisereBekreftelseTilstede / verifisereBekreftelseIkkeTilstede
I tillegg forteller disse kommandoene Selenium hvilken knapp du skal velge, OK eller AVBRYT.
- velgOkPåNesteBekreftelse / velgOkPåNesteBekreftelseOgVent
- velgCancelOnNextConfirmation
Plasser disse kommandoene før du kommandoen som utløser bekreftelsesboksen, slik at Selenium IDE vet på forhånd hvilket alternativ det skal velge. Igjen, du vil ikke se den faktiske bekreftelsesboksen under skriptkjøring.
La oss teste en nettside med en knapp som var kodet for å rapportere om brukeren trykket på OK eller AVBRYT.
Trinn 1) In Selenium IDE, angi basen URL til http://jsbin.com. Den fullstendige URL er http://jsbin.com/enifaf.
Trinn 2) Lag skriptet som vist nedenfor. Denne gangen trykker vi først på OK-knappen.
Trinn 3) Kjør skriptet og legg merke til at du ikke ser den faktiske bekreftelsen, men nettsiden rapporterer fortsatt hvilken knapp Selenium IDE trykket.
Trinn 4) Erstatt kommandoen chooseOkOnNextConfirmation med chooseCancelOnNextConfirmation og kjør skriptet på nytt. Siden rapporterer nå det motsatte valget.
multiple Windows
Hvis du klikker på en lenke som åpner et eget vindu, må du først instruere Selenium IDE for å velge det vinduet før du får tilgang til elementene i det. I den eldre IDE-en bruker du vinduets tittel som lokator.
Vi bruker selectWindow-kommandoen for å veksle mellom vinduer.
Vi bruker lenken http://jsbin.com/ocinaj/1, som har tittelen «Første vindu». Hyperkoblingen «her» på den siden åpner Facebook i et nytt vindu, hvoretter vi instruerer Selenium IDE for å gjøre følgende:
- Overfør kontroll fra det overordnede vinduet til det nylig lanserte Facebook-vinduet ved å bruke selectWindow-kommandoen med vindustittelen som lokator.
- Bekreft tittelen på det nye vinduet.
- Velg det opprinnelige vinduet på nytt ved å bruke selectWindow-kommandoen med «null» som mål.
- Bekreft tittelen på det gjeldende valgte vinduet.
Planen ovenfor oversettes til firetrinnssekvensen som vises her.
Trinn 1) Sett basen URL til http://jsbin.com.
Trinn 2) Lag skriptet som vist nedenfor.
Vi trenger pause-kommandoen for å vente på at det nylig lanserte vinduet lastes inn før vi kan lese tittelen.
Trinn 3) Utfør skriptet. Legg merke til at testforsøk bestått, som betyr at vi kunne bytte mellom vinduer og bekrefte titlene deres.
Husk alltid at hvis du setter selectWindow-målet til «null», velges det overordnede vinduet automatisk – i dette tilfellet vinduet der elementet «link=here» finnes.
OBS: Facebook har endret sidetittelen siden denne veiledningen ble laget. Endre den forventede tittelen i skriptet deretter.
Moderne Selenium IDE-ekvivalenter av disse kommandoene
Ocuco Firefox-plugin IDE ble pensjonert da Firefox flyttet til WebExtensions-arkitekturen og den nåværende Chrome, Firefox og Edge-utvidelsen ga nytt navn til de fleste Selenese-kommandoene til en linjeavstandsform. Oppførselen er uendret, så tabellen nedenfor er alt du trenger for å lese skriptene ovenfor mot en gjeldende installasjon.
| Eldre kommando i denne veiledningen | Gjeldende Selenium IDE-kommando |
|---|---|
| oppbevare | oppbevare |
| savner | savner |
| butikktekst | butikktekst |
| storeElementPresent | lagre element tilstede (eller hevde element tilstede) |
| assertAlert / verifisereAlert | hevde varsel / bekrefte varsel |
| velgOKVedNesteBekreftelse | velg ok ved neste bekreftelse |
| velgCancelOnNextConfirmation | velg avbryt ved neste bekreftelse |
| velgVindu (tittel som mål) | velg vindu med handle=${handle} |
To forskjeller er verdt å nevne. Ledetekster, som den eldre artikkelen ikke dekker, har nå sine egne kommandoer: svar på neste spørsmål planlegger svaret før dialogboksen vises, og webdriver-svar på synlig ledetekst skriver inn i en ledetekst som allerede er åpen. Og vindusbytte er ikke lenger avhengig av sidetittelen. håndtak for butikkvindu å fange et håndtak først, deretter sende håndtak=${dittHåndtak} for å velge vindu. Den endringen fjerner feilmodusen som er beskrevet i merknaden ovenfor, der et nettsted ganske enkelt gir siden nytt navn og skriptet slutter å finne vinduet. Den offisielle Selenium IDE-prosjektnettsted viser hele gjeldende kommandosettet.













