Spremi varijable, odjek, upozorenje, rukovanje skočnim prozorima Selenium IDE
⚡ Pametni sažetak
Pohrani naredbe u Selenium IDE sprema vrijednosti za vrijeme izvođenja u imenovane varijable, echo ih ispisuje u zapisnik, a namjenska obitelj naredbi obrađuje upozorenja, dijaloške okvire za potvrdu i prebacivanje između više prozora preglednika.
U ovom tutorialu naučit ćete naredbe za pohranu, naredbu echo te rukovanje upozorenjima i skočnim prozorima u Selenium IDEZajedno, ove naredbe pretvaraju fiksni snimljeni skript u onaj koji reagira na sve što aplikacija vrati tijekom izvođenja.
⚠️ Napomena o verzijama: Snimke zaslona u nastavku potječu iz originala Firefox-dodatak Selenium IDE, a naredbe koriste njegova imena u selenskom stilu napisana camelCaseom. Trenutni Chrome, Firefox a Edge ekstenzija zadržava isto ponašanje, ali većinu naziva naredbi piše s razmacima. Mapaping Tablica se pojavljuje pri kraju ovog članka, a svaka originalna naredba i snimka zaslona sačuvane su onako kako su objavljene.
Selenium IDE varijable
dućan
Za pohranjivanje varijabli u Selenium IDE, koristimo dućan naredba. Donja ilustracija pohranjuje vrijednost „tutorial“ u varijablu pod nazivom „myVariable“.
Za pristup varijabli, jednostavno je stavite u simbol ${ … }. Na primjer, za unos vrijednosti „myVariable“ u tekstualni okvir „userName“ u Mercury Obilasci, unesite ${myVariable} u polje Vrijednost.
Naredba Echo u Selenium IDE
Pohranjena varijabla je nevidljiva dok je nešto ne ispiše, a to je ono što odjek naredba to radi. Zapisuje poruku u okno zapisnika IDE-a tijekom reprodukcije, što je čini najbržim načinom za potvrdu da je naredba pohrane uhvatila ono što ste očekivali prije nego što na njoj izgradite tvrdnje.
Naredba prihvaća bilo koji oblik:
- Doslovni niz. Stavite tekst u Target polje, na primjer Korak prijave završen, za označavanje kontrolne točke u dugom scenariju.
- Varijabla. Stavite ${myVariable} u Target polje i pohranjena vrijednost se ispisuje umjesto imena.
Dvije navike čine echo puno korisnijim nego što se na prvi pogled čini. Ispišite varijablu odmah nakon naredbe store koja ju je stvorila, tako da je neuspjeh... tracvezano uz snimanje, a ne uz tvrdnju dvadeset koraka kasnije. I svakoj poruci dodajte prefiks koraka kojem pripada, jer okno zapisnika prikazuje svaku naredbu u jednom ravnom popisu. Imajte na umu da echo zapisuje samo u zapisnik - nikada ne mijenja stranicu i nikada ne pada na testu, pa ga je sigurno trajno ostaviti u skripti.
StoreElementPresent
Ova naredba pohranjuje ili „true“ ili „false“ ovisno o prisutnosti navedenog elementa. Skripta u nastavku pohranjuje logičku vrijednost „true“ u „var1“ i „false“ u „var2“. Za provjeru ćemo koristiti naredbu echo za prikaz vrijednosti var1 i var2. Osnova URL za donju ilustraciju postavljeno je na Mercury Početna stranica Tours.
StoreText
Ova se naredba koristi za pohranjivanje unutarnjeg teksta elementa u varijablu. Ilustracija u nastavku pohranjuje unutarnji tekst oznake h1 na stranici za registraciju na Facebooku u varijablu pod nazivom „textVar“.
Budući da je to jedini element te vrste na stranici, sigurno je koristiti "css=h1" kao naš cilj. Slika ispod to pokazuje Selenium IDE je uspio spremiti niz znakova "Sign Up" u varijablu "textVar" jer je echo ispravno ispisao njegovu vrijednost.
Upozorenja, skočni prozori i više Windows
Obavijesti su vjerojatno najjednostavniji oblik skočnog prozora. Najčešći Selenium IDE naredbe koje se koriste za rukovanje upozorenjima su sljedeće:
| Upozorenja | Koristi |
|---|---|
|
assertAlert assertNotAlert |
dohvaća poruku upozorenja i uspoređuje je s nizom vrijednosti koji ste naveli |
|
assertAlertPresent assertAlertNotPresent |
potvrđuje je li upozorenje prisutno ili ne |
| storeAlert | dohvaća poruku upozorenja i pohranjuje je u varijablu koju odredite |
| storeAlertPresent | vraća TRUE ako je prisutno upozorenje, inače vraća FALSE |
|
verifyAlert verifyNotAlert |
dohvaća poruku upozorenja i provjerava je li jednaka vrijednosti niza znakova koju ste naveli |
|
verifyAlertPresent verifyAlertNotPresent |
provjerava je li upozorenje prisutno ili ne |
Zapamtite ove dvije stvari kada radite s upozorenjima:
- Selenium IDE automatski klikne gumb U redu u prozoru upozorenja, tako da nećete moći vidjeti stvarno upozorenje.
- Selenium IDE ne može obraditi upozorenja koja se aktiviraju unutar funkcije onload() stranice. Obrađuje samo upozorenja koja se generiraju nakon što se stranica potpuno učita.
U ovom primjeru koristimo naredbu storeAlert kako bismo pokazali da iako Selenium IDE nije prikazao stvarno upozorenje, ali je ipak uspio dohvatiti poruku.
Korak 1) In Selenium IDE, postavite bazu URL na http://jsbin.com. Puni URL je http://jsbin.com/usidix. Ovi jsbin isječci datiraju iz Firefox-dodatak ere i možda više neće rješavati problem; svaka stranica s gumbom koji aktivira upozorenje reproducira isti rezultat.
Korak 2) Izradite skriptu kao što je prikazano u nastavku. Naredba click cilja gumb Go!, storeAlert bilježi poruku u alertMessage, a echo je ispisuje.
Korak 3) Izvršite skriptu i ne očekujte da ćete vidjeti stvarno upozorenje. Okno zapisnika ispod prikazuje snimljenu poruku iako dijalog nikada nije bio vidljiv.
potvrde
Potvrde su skočni prozori koji vam daju gumbe U redu i Otkaži, za razliku od upozorenja koja vam daju samo gumb U redu. Naredbe koje možete koristiti za rukovanje potvrdama odražavaju naredbe upozorenja.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- storeConfirmation
- storeConfirmationPresent
- provjeriPotvrdu / provjeriNePotvrdi
- provjeriPotvrdaPrisutnost / provjeriPotvrdaNijePrisutnost
Osim toga, ove naredbe govore Selenium koji gumb odabrati, U redu ili Otkaži.
- odaberiU reduNaSljedećePotvrda / odaberiU reduNaSljedećePotvrdaIČekaj
- odaberite OdustaniNaSljedećojPotvrdi
Postavite ove naredbe prije naredba koja aktivira okvir za potvrdu, tako da Selenium IDE unaprijed zna koju opciju odabrati. Ponovno, nećete vidjeti stvarni okvir za potvrdu tijekom izvršavanja skripte.
Testirajmo web stranicu s gumbom koji je kodiran da izvještava je li korisnik pritisnuo U redu ili Otkaži.
Korak 1) In Selenium IDE, postavite bazu URL na http://jsbin.com. Puni URL je http://jsbin.com/enifaf.
Korak 2) Izradite skriptu kao što je prikazano dolje. Ovaj put ćemo prvo pritisnuti gumb U redu.
Korak 3) Izvršite skriptu i primijetite da ne vidite stvarnu potvrdu, no web stranica i dalje izvještava koji gumb Selenium Pritisnuto IDE.
Korak 4) Zamijenite naredbu chooseOkOnNextConfirmation s chooseCancelOnNextConfirmation i ponovno izvršite skriptu. Stranica sada prikazuje suprotan izbor.
višekratnik Windows
Ako kliknete na poveznicu koja otvara zaseban prozor, prvo morate dati upute Selenium IDE za odabir tog prozora prije nego što možete pristupiti elementima unutar njega. U naslijeđenom IDE-u koristite naslov prozora kao njegov lokator.
Za prebacivanje između prozora koristimo naredbu selectWindow.
Koristit ćemo poveznicu http://jsbin.com/ocinaj/1, čiji je naslov „Prvi prozor“. Hiperveza „ovdje“ na toj stranici otvara Facebook u novom prozoru, nakon čega upućujemo Selenium IDE učiniti sljedeće:
- Prenesite kontrolu s roditeljskog prozora na novopokrenuti Facebook prozor pomoću naredbe selectWindow s naslovom prozora kao lokatorom.
- Provjerite naslov novog prozora.
- Ponovno odaberite izvorni prozor pomoću naredbe selectWindow s "null" kao ciljem.
- Provjerite naslov trenutno odabranog prozora.
Gornji plan se prevodi u ovdje prikazani niz od četiri koraka.
Korak 1) Postavite bazu URL na http://jsbin.com.
Korak 2) Napravite skriptu kao što je prikazano u nastavku.
Potrebna nam je naredba pause kako bismo pričekali da se novopokrenuti prozor učita prije nego što možemo pročitati njegov naslov.
Korak 3) Izvršite skriptu. Primijetite da je testni slučaj prošlo, što znači da smo mogli prebacivati između prozora i uspješno provjeriti njihove naslove.
Uvijek imajte na umu da postavljanje cilja selectWindow na "null" automatski odabire roditeljski prozor - u ovom slučaju prozor u kojem se nalazi element "link=here".
Bilješka: Facebook je promijenio naslov svoje stranice od izrade ovog vodiča. Izmijenite očekivani naslov u skripti u skladu s tim.
moderna Selenium IDE ekvivalenti ovih naredbi
The Firefox-plugin IDE je ukinut kada Firefox premješteno na WebExtensions arhitekturu i trenutni Chrome, Firefox i Edge ekstenzija je preimenovala većinu Selenese naredbi u razmaknute oblike. Ponašanje je nepromijenjeno, tako da je donja tablica sve što vam je potrebno za čitanje gornjih skripti u odnosu na trenutnu instalaciju.
| Naslijeđena naredba u ovom vodiču | struja Selenium IDE naredba |
|---|---|
| dućan | dućan |
| odjek | odjek |
| trgovinaTekst | pohrani tekst |
| storeElementPresent | pohraniti element prisutan (ili potvrditi element prisutan) |
| assertAlert / verifyAlert | potvrdi upozorenje / provjeri upozorenje |
| odaberiteU reduNaSljedećePotvrda | odaberite u redu pri sljedećoj potvrdi |
| odaberite OdustaniNaSljedećojPotvrdi | odaberite otkaži pri sljedećoj potvrdi |
| selectWindow (naslov kao cilj) | odaberite prozor s handle=${handle} |
Vrijedi istaknuti dvije razlike. Upute, koje stariji članak ne pokriva, sada imaju vlastite naredbe: odgovor na sljedeći upit planira odgovor prije nego što se pojavi dijalog i odgovor webdrivera na vidljivom upitu upisuje u već otvoreni upit. Prebacivanje između prozora više ne ovisi o naslovu stranice. Pokreni ručka za izlog trgovine prvo uhvatiti ručku, a zatim proslijediti ručka=${vašaRučka} za odabir prozora. Ta promjena uklanja način kvara opisan u gornjoj napomeni, gdje web-mjesto jednostavno preimenuje svoju stranicu i skripta prestane pronalaziti prozor. Službenik Selenium Stranica IDE projekta navodi cijeli trenutni skup naredbi.













