Salvestage muutujad, kaja, hoiatus, hüpikakna käsitlemine Selenium IDE

⚡ Nutikas kokkuvõte

Salvesta käske Selenium IDE salvestab käitusaja väärtused nimega muutujatesse, echo prindib need logisse ja spetsiaalne käskude perekond haldab teateid, kinnitusdialooge ja mitme brauseriakna vahel vahetamist.

  • 🔘 Loo muutuja: Käsk „store” võtab väärtuse Target ja muutuja nimi väärtuses.
  • ☑️ Loe see tagasi: Mähi nimi ${ } sisse kõikjal, kus käsk aktsepteerib sihtmärki või väärtust.
  • Silumiseks printimine: echo kirjutab literaalstringi või muutuja otse IDE logisse.
  • 🧪 Teavitused võetakse automaatselt vastu: IDE klõpsab sulle OK, seega kasuta sõnumi teksti jäädvustamiseks funktsiooni storeAlert.
  • 🛠️ Kinnitused vajavad otsust: Aseta „chooseOkOnNextConfirmation” enne dialoogi avavat käsku.
  • 📊 Akna vahetamine: selectWindow sihib akna pealkirja ja tühisihtmärk naaseb ülemaknasse.

Muutujate, kaja, märguannete ja hüpikakende haldamise salvestamine Selenium IDE

Selles õpetuses õpid salvestuskäsklusi, kajakäsku ning teadete ja hüpikakende käsitlemist. Selenium IDENeed käsud koos muudavad fikseeritud salvestatud skripti selliseks, mis reageerib rakenduse käitusajal tagastatavale teabele.

⚠️ Märkus versioonide kohta: allolevad ekraanipildid pärinevad originaalist Firefox-plugin Selenium IDE ja käsud kasutavad selle camelCase'i Selenese nimesid. Praegune Chrome Firefox ja Edge'i laiendus säilitab sama käitumise, aga kirjutab enamiku käskude nimed tühikutega. Kaartping Tabel kuvatakse selle artikli lõpus ja iga algne käsk ja ekraanipilt säilitatakse avaldatud kujul.

Selenium IDE muutujad

E-POOD

Muutujate salvestamiseks Selenium IDE-s kasutame salvestada käsk. Allolev joonis salvestab väärtuse „tutorial“ muutujasse nimega „myVariable“.

Selenium IDE salvestuskäsk väärtusega õpetus salvestatud myVariable'i

Muutujale juurdepääsuks pange see lihtsalt ${ … } sümboli sisse. Näiteks väärtuse „myVariable” sisestamiseks tekstikasti „userName” Mercury Tours, sisestage väärtuse väljale ${myVariable}.

Selenium IDE tüüpi käsk, kasutades kasutajanime tekstikasti väärtuse väljal ${myVariable}

Kaja käsk sees Selenium IDE

Salvestatud muutuja on nähtamatu kuni miski selle välja prindib ja see ongi see, mida... miss käsk teeb seda. See kirjutab taasesituse ajal IDE logipaneelile teate, mis teeb sellest kiireima viisi kinnitada, et salvestuskäsk tabas ootuspärase tulemuse enne, kui sellele väiteid loote.

Käsk aktsepteerib mõlemat vormi:

  • Sõnasõnaline string. Pane tekst sisse Target näiteks väli Sisselogimisetapp on lõppenud, kontrollpunkti märkimiseks pikas skriptis.
  • Muutuja. Sisesta ${myVariable} väljale Target ja nime asemel trükitakse salvestatud väärtus.

Kaks harjumust muudavad kaja palju kasulikumaks, kui see esmapilgul paistab. Muutuja tuleb kohe pärast seda loovat store-käsku välja trükkida, seega on tegemist veaga. tracSee on suunatud pigem püüdmisele kui kakskümmend sammu hiljem tehtud väitele. Ja iga sõnumi ette tuleb lisada samm, kuhu see kuulub, sest logipaan näitab iga käsku ühes kindlas loendis. Pane tähele, et echo kirjutab ainult logisse – see ei muuda kunagi lehte ega ebaõnnestu kunagi testis, seega on ohutu selle skripti jäädavalt jätta.

StoreElementPresent

See käsk salvestab kas väärtuse „true“ või „false“, olenevalt määratud elemendi olemasolust. Allolev skript salvestab Boole'i ​​väärtuse „true“ väärtusele „var1“ ja „false“ väärtusele „var2“. Kontrollimiseks kasutame käsku echo, et kuvada var1 ja var2 väärtused. Baas URL alloleva illustratsiooni jaoks oli seatud väärtusele Mercury Ekskursioonide koduleht.

Selenium IDE storeElementPresent salvestab muutujale var1 väärtuseks „true“ ja muutujale var2 väärtuseks „false“, kajastub logis.

StoreTekst

Seda käsku kasutatakse elemendi sisemise teksti salvestamiseks muutujasse. Allolev joonis salvestab Facebooki registreerumislehel oleva h1-sildi sisemise teksti muutujasse nimega „textVar”.

Selenium IDE storeText käsk loeb css=h1 muutujasse textVar

Kuna see on lehel ainus omataoline element, on sihtmärgiks ohutu kasutada „css=h1”. Allolev pilt näitab seda. Selenium IDE suutis salvestada stringi „Sign Up“ muutujasse „textVar“, sest echo printis selle väärtuse õigesti.

Selenium IDE logipaneeli prindib registreerimise väärtusena, mis on salvestatud textVar-i.

Märguanded, hüpikaknad ja mitu Windows

Teavitused on ilmselt hüpikakna lihtsaim vorm. Kõige levinum Selenium Hoiatuste käsitlemisel kasutatavad IDE-käsud on järgmised:

Märguanded sa kasutad

kinnita Hoiatus

AssertNotAlert

hangib hoiatuse sõnumi ja kinnitab selle teie määratud stringiväärtuse suhtes

assertAlertPresent

assertAlertNotPresent

kinnitab, kas hoiatus on olemas või mitte
poe Alert hangib hoiatusteate ja salvestab selle teie määratud muutujasse
storeAlertPresent tagastab TRUE, kui hoiatus on olemas, FALSE muul juhul

verifyAlert

verifyNotAlert

hangib hoiatuse sõnumi ja kontrollib, kas see võrdub teie määratud stringiväärtusega

verifyAlertPresent

verifyAlertNotPresent

kontrollib, kas hoiatus on olemas või mitte

Märguannetega töötades pidage meeles neid kahte asja.

  • Selenium IDE klõpsab automaatselt hoiatusakna nuppu OK, seega te ei näe tegelikku hoiatust.
  • Selenium IDE ei suuda käsitleda teateid, mis käivituvad lehe onload() funktsiooni sees. See käsitleb ainult teateid, mis genereeritakse pärast lehe täielikku laadimist.

Selles näites kasutame käsku storeAlert, et näidata, et kuigi Selenium IDE ei kuvanud tegelikku hoiatust, kuid suutis siiski teate kätte saada.

Step 1) In Selenium IDE, määrake baas URL aadressile http://jsbin.com. Täielik URL on http://jsbin.com/usidix. Need jsbin-koodijupid pärinevad Firefox-plugin ajastu ja ei pruugi enam lahendada; iga leht, millel on nupp, mis annab hoiatuse, annab sama tulemuse.

Step 2) Loo skript, nagu allpool näidatud. click-käsk on suunatud nupule „Mine!”, storeAlert salvestab sõnumi alertMessage'i ja echo prindib selle välja.

Selenium IDE skript click, storeAlert ja echo käskudega jsbin alert demolehel

Step 3) Käivita skript ja ära oota tegeliku hoiatuse nägemist. Allolev logipaan näitab jäädvustatud teadet, kuigi dialoogiboksi polnud kunagi näha.

Selenium IDE logi, mis näitab pärast taasesitust storeAlert'i poolt hangitud hoiatusteksti

Kinnitused

Kinnitused on hüpikaknad, mis pakuvad nuppe OK ja TÜHISTA, erinevalt teadetest, mille puhul on saadaval ainult OK nupp. Kinnituste käsitlemisel kasutatavad käsud peegeldavad teadete käske.

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • poe kinnitus
  • StoreConfirmationPresent
  • kinnita kinnitus / kinnita mitte kinnitus
  • kontrolligeKinnitusOlemas / kontrolligeKinnitustNotPresent

Lisaks ütlevad need käsud Selenium millist nuppu valida, OK või TÜHISTA.

  • valiJärgmise kinnituse korral OK / valiJärgmise kinnituse korral OK ja oota
  • valigeCancelOnNextConfirmation

Asetage need käsud enne käsk, mis käivitab kinnituskasti, nii et Selenium IDE teab ette, millist valikut valida. Jällegi, skripti käivitamise ajal kinnituskasti ei kuvata.

Testime veebilehte, millel on nupp, mis on kodeeritud nii, et see annab teada, kas kasutaja vajutas nuppu OK või TÜHISTA.

Step 1) In Selenium IDE, määrake baas URL aadressile http://jsbin.com. Täielik URL on http://jsbin.com/enifaf.

Step 2) Loo skript allpool näidatud viisil. Seekord vajutame kõigepealt nuppu OK.

Selenium IDE skripti paigutamine valikule „chooseOkOnNextConfirmation” enne dialoogi avavat klõpsu

Step 3) Käivita skript ja märka, et sa ei näe tegelikku kinnitust, kuid veebileht annab ikkagi teada, milline nupp Selenium IDE-klahvi vajutatud.

Testleht, mis teatab kinnitusdialoogi OK nupu vajutamisest

Step 4) Asendage käsk „chooseOkOnNextConfirmation” käsuga „chooseCancelOnNextConfirmation” ja käivitage skript uuesti. Lehel kuvatakse nüüd vastupidine valik.

Selenium IDE skripti muudeti nii, et see kasutaks chooseOkOnNextConfirmation asemel chooseCancelOnNextConfirmation'i.

mitmekordne Windows

Kui klõpsate lingil, mis avab eraldi akna, peate kõigepealt juhendama Selenium IDE valib selle akna enne, kui saate selle elementidele juurde pääseda. Vanemas IDE-s kasutate akna pealkirja selle asukoha määrajana.

Akende vahel vahetamiseks kasutame käsku selectWindow.

Kasutame linki http://jsbin.com/ocinaj/1, mille pealkiri on „Esimene aken“. Sellel lehel olev hüperlink „siin“ avab Facebooki uues aknas, mille järel juhendame Selenium IDE teha järgmist:

  • Kanna juhtimine ülemaknast äsjaavatud Facebooki aknasse käsuga selectWindow, kus asukoha määramiseks kasutatakse akna pealkirja.
  • Kinnitage uue akna pealkiri.
  • Valige algne aken uuesti käsuga selectWindow, mille sihtmärgiks on „null”.
  • Kontrollige praegu valitud akna pealkirja.

Ülaltoodud plaan tõlgitakse siin näidatud neljaastmeliseks järjestuseks.

Ülemaknast uude aknasse ja tagasi ülemineku skeem

Step 1) Määrake alus URL aadressile http://jsbin.com.

Step 2) Looge skript, nagu allpool näidatud.

Selenium IDE skript, mis kasutab kahe akna vahel liikumiseks käske selectWindow, pause ja verifyTitle

Vajame pausi käsku, et oodata äsja käivitatud akna laadimist, enne kui saame selle pealkirja lugeda.

Step 3) Käivitage skript. Pange tähele, et testjuhtum sooritas, mis tähendab, et saime akende vahel vahetada ja nende pealkirju edukalt kontrollida.

Rohelise läbimise tulemus Selenium IDE pärast mõlema akna pealkirjade kontrollimist

Pea alati meeles, et kui määrad selectWindow sihtmärgi väärtuseks „null“, valib see automaatselt ülemakna – antud juhul akna, kus asub element „link=here“.

Märge: Facebook on selle õpetuse loomisest saadik oma lehe pealkirja muutnud. Muuda skriptis eeldatavat pealkirja vastavalt.

Kaasaegne Selenium Nende käskude IDE ekvivalendid

. Firefox-plugin IDE eemaldati, kui Firefox kolis WebExtensionsi arhitektuuri ja praeguse Chrome'i juurde Firefox ja Edge'i laiendus nimetas enamiku Selenese käske ümber vahedega käskudeks. Käitumine jääb samaks, seega on allolev tabel kõik, mida vajate ülaltoodud skriptide lugemiseks praeguse installi korral.

Selle õpetuse pärandkäsk Praegune Selenium IDE-käsk
salvestada salvestada
miss miss
poeTekst salvesta tekst
poeElementPresent store element present (või assert element present)
assertAlert / verifyAlert kinnitada hoiatust / kinnitada hoiatust
valiJärgmise kinnitusega OK vali järgmisel kinnitusel ok
valigeCancelOnNextConfirmation vali järgmisel kinnitusel tühista
selectWindow (pealkiri sihtmärgina) vali aken käepidemega=${käepide}

Kaks erinevust väärivad väljatoomist. Viipadel, mida pärandartiklis ei käsitleta, on nüüd oma käsud: vasta järgmisele küsimusele planeerib vastuse enne dialoogi ilmumist ja veebidraiveri vastus nähtaval viipal tüübid juba avatud viibale. Ja akende vahetamine ei sõltu enam lehe pealkirjast. Käivita poe akna käepide esmalt käepideme jäädvustamiseks ja seejärel edasiandmiseks käepide=${sinuKäepide} akna valimiseks. See muudatus eemaldab ülaltoodud märkuses kirjeldatud tõrkerežiimi, kus sait lihtsalt nimetab oma lehe ümber ja skript ei leia enam akent. Ametlik Selenium IDE projekti sait loetleb kogu praeguse käskude komplekti.

KKK

Jah. ${myVariable} ja ${myvariable} viitavad kahele erinevale muutujale ning ühele mittesalvestatud muutujale viitamine annab tulemuseks tühja stringi, mitte ei tekita viga. Vaiksete tühikute vältimiseks kasutage kogu komplektis ühte nimetamiskonventsiooni.

Jah. ${ } süntaksit laiendatakse mis tahes Target või Väärtuse väli, seega töötab see avatud käsu, XPathi või CSS-i selektori sees. Nii muudetakse salvestatud skript skriptiks, mis on juhitud varem käivitamise käigus jäädvustatud andmete põhjal.

Selenesel pole matemaatilisi operaatoreid. Kasutage käsku execute script väikese JavaSkriptiavaldis, mis loeb muutujat ja tagastab tulemuse ning seejärel salvestab selle tagastusväärtuse. Pea meeles, et iga salvestatud väärtus saabub stringina, seega teisenda see kõigepealt.

Käsitle neid ühe testi lokaalsetena. Varasema testi poolt määratud väärtusele tuginemine muudab komplekti järjestusest sõltuvaks ja raskesti silutavaks, seega salvesta testi vajadused sellesse testi või loe need alguses andmefailist.

Viip vajab teksti, mitte ainult nupuvalikut. Käivita answer järgmisel viipal, lisades vastuse väärtuse väljale enne käsku, mis selle avab, või kasuta webdriver answer'i nähtaval viipal, kui dialoogiboks on juba ekraanil.

Masinõppe tööriistad suudavad stsenaariumi lihtsas keeles kirjelduse põhjal välja pakkuda käskude jada ja soovitada täpsemaid lokaatoreid, kui diktofon pakub. Tehisintellekti abil lokaatori parandamine on samuti abiks, kuna ümbernimetatud element on tavaline põhjus, miks salvestatud väärtus tühjana tagasi tuleb.

Jah. Ekspordi test asukohta Java or Python, seejärel laske Copilotil lameda käskude loendi ümber faktoreerida leheobjektideks ja korduvkasutatavateks ooteaegadeks. Kontrollige häirete käsitlemist käsitsi, sest genereeritud kood eeldab sageli nähtavat dialoogi, mille IDE on juba kõrvale jätnud.

Pealkirjapõhine valik muutub mitmetähenduslikuks ja võidakse valida vale aken. Just sel põhjusel eelistab praegune IDE käepidemeid: jäädvustage kohe pärast akna avanemist akna käepidemega üks ja seejärel vahetage see handle=${yourHandle}.

Võta see postitus kokku järgmiselt: