Stocarea variabilelor, Echo, Alertă, Gestionare popUp în Selenium IDE
⚡ Rezumat inteligent
Stocați comenzile în Selenium IDE salvează valorile de execuție în variabile denumite, echo le afișează în jurnal, iar o familie de comenzi dedicată gestionează alertele, dialogurile de confirmare și comutarea între mai multe ferestre de browser.

În acest tutorial veți învăța comenzile store, comanda echo și gestionarea alertelor și a ferestrelor pop-up în Selenium IDEÎmpreună, aceste comenzi transformă un script înregistrat fix într-unul care reacționează la orice returnează aplicația la momentul execuției.
⚠️ O notă despre versiuni: Capturile de ecran de mai jos provin din original Firefox-conecteaza Selenium IDE, iar comenzile folosesc numele sale camelCase Selenese. Chrome-ul actual, Firefox și extensia Edge păstrează același comportament, dar scrie majoritatea numelor de comenzi cu spații. O hartăping tabelul apare spre sfârșitul acestui articol, iar fiecare comandă și captură de ecran originală este păstrată așa cum a fost publicată.
Selenium Variabile IDE
Magazin
Pentru a stoca variabile în Selenium IDE, folosim stoca comandă. Ilustrația de mai jos stochează valoarea „tutorial” într-o variabilă numită „myVariable”.
Pentru a accesa variabila, pur și simplu includeți-o într-un simbol ${ … }. De exemplu, pentru a introduce valoarea „myVariable” în caseta de text „userName” din Mercury Tururi, introduceți ${myVariable} în câmpul Valoare.
Comandă Echo în Selenium IDE
O variabilă stocată este invizibilă până când ceva nu o afișează, și asta este ceea ce face... ecou Comanda o face. Scrie un mesaj în panoul jurnal IDE în timpul redării, ceea ce o face cea mai rapidă modalitate de a confirma că o comandă de stocare a surprins ceea ce vă așteptați înainte de a construi aserțiuni peste ea.
Comanda acceptă oricare dintre formele:
- Un șir literal. Puneți textul în Target câmp, de exemplu Pasul de conectare finalizat, pentru a marca un punct de control într-un script lung.
- O variabilă. Puneți ${myVariable} în Target câmp și valoarea stocată este tipărită în locul numelui.
Două obiceiuri fac ca ecoul să fie mult mai util decât pare la prima vedere. Afișează o variabilă imediat după comanda de stocare care îl creează, deci un eșec este tracutilizat pentru captură, mai degrabă decât pentru aserțiune, douăzeci de pași mai târziu. Și prefixați fiecare mesaj cu pasul căruia îi aparține, deoarece panoul de jurnal afișează fiecare comandă într-o listă plată. Rețineți că echo scrie doar în jurnal - nu modifică niciodată pagina și nu eșuează niciodată la un test, deci este sigur să lăsați permanent într-un script.
StoreElementPresent
Această comandă stochează fie „true”, fie „false”, în funcție de prezența elementului specificat. Scriptul de mai jos stochează valoarea booleană „true” în „var1” și „false” în „var2”. Pentru verificare, vom folosi comanda echo pentru a afișa valorile lui var1 și var2. Valoarea de bază URL pentru ilustrația de mai jos a fost setată la Mercury Pagina principală a excursiilor.
StoreText
Această comandă este utilizată pentru a stoca textul intern al unui element într-o variabilă. Ilustrația de mai jos stochează textul intern al etichetei h1 de pe pagina de înscriere Facebook într-o variabilă numită „textVar”.
Întrucât este singurul element de acest fel de pe pagină, este sigur să folosim „css=h1” ca țintă. Imaginea de mai jos arată asta. Selenium IDE a reușit să salveze șirul „Sign Up” în variabila „textVar”, deoarece echo a afișat corect valoarea acestuia.
Alerte, pop-up și multiple Windows
Alertele sunt probabil cea mai simplă formă de fereastră pop-up. Cea mai comună Selenium Comenzile IDE utilizate în gestionarea alertelor sunt următoarele:
| Alerte | Utilizeaza |
|---|---|
|
assertAlert assertNotAlert |
preia mesajul alertei și îl activează în funcție de o valoare de tip șir specificată de dvs. |
|
assertAlertPresent assertAlertNotPresent |
afirmă dacă există sau nu o alertă |
| storeAlert | preia mesajul de alertă și îl stochează într-o variabilă specificată de dvs. |
| storeAlertPresent | returnează TRUE dacă este prezentă o alertă, FALSE în caz contrar |
|
verifyAlert verifyNotAlert |
preia mesajul alertei și verifică dacă acesta este egal cu valoarea șirului de caractere specificată de dvs. |
|
verifyAlertPresent verifyAlertNotPresent |
verifică dacă există sau nu o alertă |
Rețineți aceste două lucruri când lucrați cu alerte:
- Selenium IDE dă automat clic pe butonul OK din fereastra de alertă, deci nu veți putea vedea alerta propriu-zisă.
- Selenium IDE nu poate gestiona alertele declanșate în cadrul funcției onload() a paginii. Acesta gestionează doar alertele generate după ce pagina s-a încărcat complet.
În acest exemplu folosim comanda storeAlert pentru a arăta că, deși Selenium IDE nu a afișat alerta propriu-zisă, dar a reușit totuși să recupereze mesajul.
Pas 1) In Selenium IDE, setează Baza URL către http://jsbin.com. Întregul URL este http://jsbin.com/usidix. Aceste fragmente jsbin datează din Firefoxera plugin-urilor și este posibil să nu mai fie rezolvată; orice pagină cu un buton care generează o alertă reproduce același rezultat.
Pas 2) Creați scriptul așa cum se arată mai jos. Comanda click vizează butonul Go!, storeAlert capturează mesajul în alertMessage, iar echo îl afișează.
Pas 3) Executați scriptul și nu vă așteptați să vedeți alerta propriu-zisă. Panoul jurnal de mai jos afișează mesajul capturat chiar dacă dialogul nu a fost niciodată vizibil.
Confirmări
Confirmările sunt ferestre pop-up care vă oferă un buton OK și un buton CANCEL, spre deosebire de alerte, care vă oferă doar butonul OK. Comenzile pe care le puteți utiliza pentru gestionarea confirmărilor reflectă comenzile de alertă.
- asserConfirmation / asserNuConfirmation
- asserConfirmationPresent / asserConfirmationNoPresent
- Confirmare magazin
- storeConfirmationPresent
- verificareConfirmare / verificareNuConfirmare
- verificareConfirmarePrezent / verificareConfirmareNuPrezent
În plus, aceste comenzi spun Selenium ce buton să alegeți, OK sau ANULARE.
- alegeOkLaUrmătoareaConfirmare / alegeOkLaUrmătoareaConfirmareȘiAșteptați
- alege CancelOnNextConfirmation
Plasați aceste comenzi înainte comanda care declanșează caseta de confirmare, astfel încât Selenium IDE știe dinainte ce opțiune să aleagă. Din nou, nu veți vedea caseta de confirmare propriu-zisă în timpul execuției scriptului.
Să testăm o pagină web cu un buton codat să raporteze dacă utilizatorul a apăsat OK sau CANCEL.
Pas 1) In Selenium IDE, setează Baza URL către http://jsbin.com. Întregul URL este http://jsbin.com/enifaf.
Pas 2) Creați scriptul așa cum se arată mai jos. De data aceasta vom apăsa mai întâi butonul OK.
Pas 3) Executați scriptul și observați că nu vedeți confirmarea propriu-zisă, dar pagina web încă raportează ce buton Selenium IDE apăsat.
Pas 4) Înlocuiți comanda chooseOkOnNextConfirmation cu chooseCancelOnNextConfirmation și executați din nou scriptul. Pagina afișează acum opțiunea opusă.
Multiplu Windows
Dacă faceți clic pe un link care deschide o fereastră separată, trebuie mai întâi să instruiți Selenium IDE să selecteze acea fereastră înainte de a putea accesa elementele din interiorul ei. În IDE-ul vechi, folosești titlul ferestrei ca localizator.
Folosim comanda selectWindow pentru a comuta între ferestre.
Vom folosi linkul http://jsbin.com/ocinaj/1, al cărui titlu este „Prima fereastră”. Hyperlinkul „aici” de pe pagina respectivă deschide Facebook într-o fereastră nouă, după care vă instruim Selenium IDE pentru a face următoarele:
- Transferă controlul de la fereastra părinte la fereastra Facebook nou lansată folosind comanda selectWindow cu titlul ferestrei ca localizator.
- Verificați titlul noii ferestre.
- Selectați din nou fereastra originală folosind comanda selectWindow cu „null” ca țintă.
- Verificați titlul ferestrei selectate în prezent.
Planul de mai sus se traduce în secvența în patru pași prezentată aici.
Pas 1) Setați baza URL către http://jsbin.com.
Pas 2) Creați scriptul așa cum se arată mai jos.
Avem nevoie de comanda pause pentru a aștepta încărcarea ferestrei nou lansate înainte de a putea citi titlul acesteia.
Pas 3) Executați scriptul. Observați că caz de testare a trecut, ceea ce înseamnă că am putut comuta între ferestre și verifica cu succes titlurile acestora.
Rețineți întotdeauna că setarea țintei selectWindow la „null” selectează automat fereastra părinte - în acest caz, fereastra în care se găsește elementul „link=here”.
Notă: Facebook și-a schimbat titlul paginii de când a fost creat acest tutorial. Modificați titlul așteptat din script în consecință.
Modern Selenium Echivalente IDE ale acestor comenzi
FirefoxIDE-ul plugin-urilor a fost retras când Firefox mutat la arhitectura WebExtensions și la Chrome-ul actual, Firefox Și extensia Edge a redenumit majoritatea comenzilor Selenese într-o formă spațiată. Comportamentul este neschimbat, așa că tabelul de mai jos este tot ce aveți nevoie pentru a citi scripturile de mai sus pe o instalare curentă.
| Comandă moștenită în acest tutorial | Curent Selenium Comandă IDE |
|---|---|
| stoca | stoca |
| ecou | ecou |
| storeText | stocați textul |
| storeElementPresent | stocează elementul prezent (sau afirmă elementul prezent) |
| assertAlert / verifyAlert | afirmare alertă / verificare alertă |
| alegeOkPeUrmătorulConfirmare | alegeți ok la următoarea confirmare |
| alege CancelOnNextConfirmation | alegeți anulare la următoarea confirmare |
| selectWindow (titlul ca țintă) | selectați fereastra cu handle=${handle} |
Două diferențe merită menționate. Solicitările, pe care articolul vechi nu le acoperă, au acum propriile comenzi: răspuns la următoarea solicitare planifică răspunsul înainte de apariția dialogului și răspunsul webdriver la o solicitare vizibilă tastează într-un prompt care este deja deschis. Iar schimbarea ferestrelor nu se mai bazează pe titlul paginii. Execută mânerul vitrinei magazinului să captezi mai întâi un mâner, apoi să pasezi handle=${identificatorul_tau} pentru a selecta fereastra. Această modificare elimină modul de eroare descris în nota de mai sus, în care un site își redenumește pur și simplu pagina, iar scriptul nu mai găsește fereastra. Oficialul Selenium Site-ul proiectului IDE listează setul complet de comenzi curente.













