Tallenna muuttujat, kaiku, hälytys, ponnahdusikkunoiden käsittely Selenium IDE

⚡ Älykäs yhteenveto

Tallenna komennot Selenium IDE tallentaa ajonaikaiset arvot nimettyihin muuttujiin, echo tulostaa ne lokiin ja erillinen komentoperhe käsittelee hälytykset, vahvistusikkunat ja vaihtamisen useiden selainikkunoiden välillä.

  • 🔘 Luo muuttuja: tallennuskomento ottaa arvon sisään Target ja muuttujan nimi kohdassa Arvo.
  • ☑️ Lue se takaisin: Rivitä nimi ${ } -merkkien sisään aina, kun komento hyväksyy kohteen tai arvon.
  • Tulosta virheenkorjausta varten: echo kirjoittaa literaalimerkkijonon tai muuttujan suoraan IDE-lokiin.
  • 🧪 Hälytykset hyväksytään automaattisesti: IDE napsauttaa OK, joten käytä storeAlert-funktiota viestin tekstin tallentamiseen.
  • 🛠️ Vahvistukset vaativat päätöksen: Aseta chooseOkOnNextConfirmation ennen valintaikkunan avaavaa komentoa.
  • 📊 Ikkunan vaihto: selectWindow kohdistuu ikkunan otsikkoon ja null-kohde palauttaa pääikkunaan.

Tallenna muuttujat, kaiutus, hälytykset ja ponnahdusikkunoiden käsittely Selenium IDE

Tässä opetusohjelmassa opit tallennuskomennot, kaikukomennon sekä hälytysten ja ponnahdusikkunoiden käsittelyn. Selenium IDEYhdessä nämä komennot muuttavat kiinteän tallennetun komentosarjan sellaiseksi, joka reagoi sovelluksen ajonaikaiseen palauttamaan sisältöön.

⚠️ Huomautus versioista: alla olevat kuvakaappaukset ovat alkuperäisestä Firefox-laajennus Selenium IDE, ja komennot käyttävät sen camelCase-seleeniläisiä nimiä. Nykyinen Chrome, Firefox ja Edge-laajennus säilyttää saman toiminnan, mutta kirjoittaa useimpien komentojen nimet välilyöntein. Karttaping taulukko näkyy tämän artikkelin loppupuolella, ja jokainen alkuperäinen komento ja kuvakaappaus säilytetään julkaistussa muodossaan.

Selenium IDE-muuttujat

Kauppa

Muuttujien tallentamiseen Selenium IDE:ssä käytämme verkkokaupasta komento. Alla olevassa kuvassa arvo ”tutorial” tallennetaan muuttujaan nimeltä ”myVariable”.

Selenium IDE-tallennuskomento, jonka arvo on tallennettu tutorial-arvoon myVariable-muuttujassa

Päästäksesi muuttujaan, yksinkertaisesti sulje se ${ … } -symbolin sisään. Esimerkiksi, jos haluat syöttää arvon ”myVariable” ”userName”-tekstikenttään Mercury Tours, kirjoita ${myVariable} Arvo-kenttään.

Selenium IDE-tyyppinen komento, jossa käytetään ${myVariable}-muuttujaa käyttäjänimi-tekstiruudun Value-kentässä

Kaiutuskomento sisään Selenium IDE

Tallennettu muuttuja on näkymätön, kunnes jokin tulostaa sen, ja sitä se tarkoittaakin. kaiku komento tekee niin. Se kirjoittaa viestin IDE-lokiruutuun toiston aikana, mikä tekee siitä nopeimman tavan varmistaa, että tallennuskomento tallensi odottamasi tiedot, ennen kuin rakennat väitteitä sen päälle.

Komento hyväksyy kumman tahansa muodon:

  • Kirjaimellinen merkkijono. Laita teksti kohtaan Target kenttä, esimerkiksi Kirjautumisvaihe suoritettu, merkitäksesi tarkistuspisteen pitkässä skriptissä.
  • Muuttuja. Lisää ${myVariable} muuttujaan Target kenttään ja tallennettu arvo tulostetaan nimen sijaan.

Kaksi tapaa tekevät echo-komennosta paljon hyödyllisemmän kuin miltä se aluksi näyttää. Tulosta muuttuja heti sen luoneen store-komennon jälkeen, joten virhe on traced sieppaukseen eikä kaksikymmentä askelta myöhemmin tehtyyn väitteeseen. Ja lisää jokaisen viestin etuliitteeksi vaihe, johon se kuuluu, koska lokiruutu näyttää jokaisen komennon yhdessä tasaisessa luettelossa. Huomaa, että echo kirjoittaa vain lokiin – se ei koskaan muuta sivua eikä koskaan epäonnistu testissä, joten sen voi turvallisesti jättää skriptiin pysyvästi.

StoreElementPresent

Tämä komento tallentaa joko arvon ”true” tai ”false” määritetyn elementin läsnäolosta riippuen. Alla oleva komentosarja tallentaa totuusarvon ”true” muuttujaan ”var1” ja ”false” muuttujaan ”var2”. Varmistaaksemme tämän, käytämme echo-komentoa näyttääksemme muuttujan var1 ja muuttujan var2 arvot. URL alla olevassa kuvassa asetettiin arvoon Mercury Tours kotisivut.

Selenium IDE storeElementPresent tallentaa arvon true muuttujalle var1 ja false muuttujalle var2, näkyy lokissa

StoreText

Tätä komentoa käytetään elementin sisäisen tekstin tallentamiseen muuttujaan. Alla olevassa kuvassa Facebookin rekisteröitymissivun h1-tagin sisäinen teksti tallennetaan muuttujaan nimeltä "textVar".

Selenium IDE storeText -komento lukee css=h1-muuttujan textVar-muuttujaan

Koska se on ainoa laatuaan oleva elementti sivulla, on turvallista käyttää kohteena ”css=h1”. Alla oleva kuva osoittaa, että Selenium IDE pystyi tallentamaan merkkijonon ”Sign Up” ”textVar”-muuttujaan, koska echo tulosti sen arvon oikein.

Selenium IDE-lokiruudun tulostaminen Sign Up -arvoksi, joka on tallennettu textVar-muuttujaan.

Hälytykset, ponnahdusikkunat ja useita Windows

Hälytykset ovat luultavasti yksinkertaisin ponnahdusikkunoiden muoto. Yleisin Selenium Hälytysten käsittelyssä käytetyt IDE-komennot ovat seuraavat:

Hälytykset käytät

AsserAlert

assertNotAlert

hakee hälytyksen viestin ja asettaa sen määrittämääsi merkkijonoarvoa vasten

assertAlertPresent

assertAlertNotPresent

vahvistaa, onko hälytys läsnä vai ei
varastohälytys hakee hälytysviestin ja tallentaa sen määrittämääsi muuttujaan
storeAlertPresent palauttaa arvon TRUE, jos hälytys on läsnä, muuten FALSE

vahvista Alert

verifyNotAlert

hakee hälytyksen viestin ja tarkistaa, onko se yhtä suuri kuin määrittämäsi merkkijonoarvo

verifyAlertPresent

verifyAlertNotPresent

tarkistaa, onko hälytys läsnä vai ei

Muista nämä kaksi asiaa, kun työskentelet hälytysten kanssa:

  • Selenium IDE napsauttaa automaattisesti hälytysikkunan OK-painiketta, joten et näe varsinaista hälytystä.
  • Selenium IDE ei pysty käsittelemään sivun onload()-funktion sisällä laukaistuja hälytyksiä. Se käsittelee vain hälytyksiä, jotka luodaan sivun latautumisen jälkeen.

Tässä esimerkissä käytämme storeAlert-komentoa osoittaaksemme, että vaikka Selenium IDE ei näyttänyt varsinaista hälytystä, mutta se pystyi silti hakemaan viestin.

Vaihe 1) In Selenium IDE, aseta perusarvo URL osoitteeseen http://jsbin.com. Täysi URL on http://jsbin.com/usidix. Nämä jsbin-koodinpätkät ovat peräisin ajalta Firefox-laajennusten aikakausi eikä välttämättä enää ratkea; kaikki sivut, joilla on hälytyksen aiheuttava painike, toistavat saman tuloksen.

Vaihe 2) Luo alla olevan kaltainen skripti. click-komento kohdistuu Go!-painikkeeseen, storeAlert tallentaa viestin alertMessage-viestiin ja echo tulostaa sen.

Selenium IDE-skripti click-, storeAlert- ja echo-komennoilla jsbin-hälytysten demosivua vasten

Vaihe 3) Suorita komentosarja äläkä odota näkeväsi varsinaista hälytystä. Alla oleva lokiruutu näyttää siepatun viestin, vaikka valintaikkuna ei ollut koskaan näkyvissä.

Selenium IDE-loki, joka näyttää storeAlert-toiminnon toiston jälkeen noutaman hälytystekstin

vahvistukset

Vahvistukset ovat ponnahdusikkunoita, joissa on OK- ja PERUUTA-painikkeet, toisin kuin hälytykset, joissa on vain OK-painike. Vahvistusten käsittelyssä käytettävät komennot vastaavat hälytyskomentoja.

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • varaston vahvistus
  • StoreConfirmationPresent
  • verifyConfirmation / verifyNotConfirmation
  • verifyConfirmationPresent / verifyConfirmationNotPresent

Lisäksi nämä komennot kertovat Selenium kumpi painike valitaan, OK vai PERUUTA.

  • valitseOkSeuraavaVahvistus / valitseOkSeuraavaVahvistusJaOdota
  • valitseCancelOnNextConfirmation

Aseta nämä komennot ennen komento, joka laukaisee vahvistusruudun, jotta Selenium IDE tietää etukäteen, minkä vaihtoehdon valita. Jälleen kerran, et näe varsinaista vahvistusruutua skriptin suorituksen aikana.

Testataan verkkosivua, jonka painike on koodattu ilmoittamaan, painoiko käyttäjä OK vai PERUUTA.

Vaihe 1) In Selenium IDE, aseta perusarvo URL osoitteeseen http://jsbin.com. Täysi URL on http://jsbin.com/enifaf.

Vaihe 2) Luo skripti alla olevan kuvan mukaisesti. Tällä kertaa painamme ensin OK-painiketta.

Selenium IDE-skriptin sijoittaminen chooseOkOnNextConfirmation -komennon ennen valintaikkunan avaavaa napsautusta

Vaihe 3) Suorita skripti ja huomaa, ettet näe varsinaista vahvistusta, mutta verkkosivu ilmoittaa silti, mikä painike on valittuna. Selenium IDE-näppäintä painettu.

Testisivu, joka ilmoittaa vahvistusikkunan OK-painikkeen painamisesta

Vaihe 4) Korvaa chooseOkOnNextConfirmation-komento chooseCancelOnNextConfirmation-komennolla ja suorita skripti uudelleen. Sivu raportoi nyt päinvastaisen vaihtoehdon.

Selenium IDE-skriptiä muokattu käyttämään chooseCancelOnNextConfirmation-komentoa chooseOkOnNextConfirmation-komennon sijaan

moninkertainen Windows

Jos napsautat linkkiä, joka avaa erillisen ikkunan, sinun on ensin annettava ohjeet Selenium IDE:ssä ikkunan valitsemiseksi ennen kuin sen sisällä olevia elementtejä voi käyttää. Vanhassa IDE:ssä ikkunan otsikkoa käytetään sen paikallistajana.

Käytämme selectWindow-komentoa vaihtaaksemme ikkunoiden välillä.

Käytämme linkkiä http://jsbin.com/ocinaj/1, jonka otsikko on ”First Window”. Sivun ”here”-linkki avaa Facebookin uudessa ikkunassa, minkä jälkeen ohjeet ovat seuraavat: Selenium IDE suorittaa seuraavat toimet:

  • Siirrä hallinta pääikkunasta juuri käynnistettyyn Facebook-ikkunaan käyttämällä selectWindow-komentoa, jossa ikkunan otsikko on paikallistaja.
  • Tarkista uuden ikkunan otsikko.
  • Valitse alkuperäinen ikkuna uudelleen käyttämällä selectWindow-komentoa, jonka kohteena on ”null”.
  • Tarkista valitun ikkunan otsikko.

Yllä oleva suunnitelma muuntuu tässä esitetyksi nelivaiheiseksi sarjaksi.

Kaavio siirtymisestä pääikkunasta uuteen ikkunaan ja takaisin

Vaihe 1) Aseta pohja URL osoitteeseen http://jsbin.com.

Vaihe 2) Luo skripti alla olevan kuvan mukaisesti.

Selenium IDE-skripti, joka käyttää selectWindow-, pause- ja verifyTitle-komentoja kahden ikkunan välillä siirtymiseen

Tarvitsemme pause-komennon odottaaksemme juuri käynnistetyn ikkunan latautumista ennen kuin voimme lukea sen otsikon.

Vaihe 3) Suorita käsikirjoitus. Huomaa, että testitapaus läpäisty, mikä tarkoittaa, että pystyimme vaihtamaan ikkunoiden välillä ja tarkistamaan niiden otsikot onnistuneesti.

Vihreän ohituksen tulos Selenium IDE molempien ikkunoiden otsikoiden varmentamisen jälkeen

Muista aina, että selectWindow-kohteen asettaminen arvoon ”null” valitsee automaattisesti pääikkunan – tässä tapauksessa ikkunan, jossa elementti ”link=here” sijaitsee.

Huomautus: Facebook on muuttanut sivunsa otsikkoa tämän tutoriaalin luomisen jälkeen. Muokkaa odotettua otsikkoa skriptissä vastaavasti.

Moderni Selenium Näiden komentojen IDE-vastineet

Firefox-plugin IDE poistettiin käytöstä, kun Firefox siirretty WebExtensions-arkkitehtuuriin ja nykyiseen Chromeen, Firefox ja Edge-laajennus nimesi useimmat Selenese-komennot uudelleen rivivälein kirjoitetuiksi komennoista. Toiminta ei ole muuttunut, joten alla oleva taulukko riittää lukemaan yllä olevat skriptit nykyistä asennusta vasten.

Tämän opetusohjelman vanha komento Nykyinen Selenium IDE-komento
verkkokaupasta verkkokaupasta
kaiku kaiku
myymäläTeksti tallentaa tekstin
StoreElementPresent tallennuselementti läsnä (tai assert-elementti läsnä)
assertAlert / verifyAlert vahvistaa hälytyksen / vahvistaa hälytyksen
ValitseOkSeuraavaVahvistus valitse ok seuraavalla vahvistuksella
valitseCancelOnNextConfirmation valitse peruuta seuraavalla vahvistuksella
selectWindow (otsikko kohteena) valitse ikkuna, jonka kahva on ${kahva}

Kaksi eroa on syytä mainita. Kehotteilla, joita vanha artikkeli ei käsittele, on nyt omat komentonsa: vastaa seuraavalla kehotteella suunnittelee vastauksen ennen valintaikkunan avautumista ja webdriver-vastaus näkyvässä kehotteessa kirjoittaa jo avoimeen kehotteeseen. Ja ikkunanvaihto ei enää ole riippuvainen sivun otsikosta. Suorita myymälän ikkunan kahva kaapata ensin kahva ja sitten siirtää kahva=${sinunKahva} ikkunan valitsemiseksi. Tämä muutos poistaa yllä olevassa huomautuksessa kuvatun virhetilan, jossa sivusto yksinkertaisesti nimeää sivunsa uudelleen ja komentosarja lakkaa löytämästä ikkunaa. Virallinen Selenium IDE-projektisivusto listaa koko nykyisen komentosarjan.

UKK

Kyllä. ${myVariable} ja ${myvariable} viittaavat kahteen eri muuttujaan, ja sellaisen muuttujan viittaaminen, jota ei ole koskaan tallennettu, johtaa tyhjään merkkijonoon virheen sijaan. Käytä samaa nimeämiskäytäntöä koko paketissa välttääksesi hiljaisia ​​tyhjiä merkkejä.

Kyllä. ${ } -syntaksia laajennetaan missä tahansa Target tai Arvo-kenttään, joten se toimii avoimen komennon, XPath-lausekkeen tai CSS-valitsimen sisällä. Näin tallennettu skripti muutetaan aiemmin suorituksen aikana tallennetun datan ohjaamaksi skriptiksi.

Selenesellä ei ole matemaattisia operaattoreita. Käytä execute script -komentoa pienen JavaSkriptilauseke, joka lukee muuttujan ja palauttaa tuloksen, ja tallentaa sitten palautusarvon. Muista, että jokainen tallennettu arvo saapuu merkkijonona, joten muunna se ensin.

Käsittele niitä yksittäisen testin paikallisina arvoina. Aiemman testin asettaman arvon käyttäminen tekee testipaketista järjestyksestä riippuvaisen ja vaikeasti debugattavan, joten tallenna testin tarvitsemat tiedot kyseisen testin sisään tai lue ne datatiedostosta alussa.

Kehotteessa tarvitsee tekstiä, ei vain painikevalintaa. Suorita vastaus seuraavassa kehotteessa siten, että vastaus on Arvo-kentässä ennen komentoa, joka avaa sen, tai käytä webdriver-vastausta näkyvällä kehotteella, kun valintaikkuna on jo näytöllä.

Koneoppimistyökalut voivat ehdottaa komentosarjaa skenaarion selkokielisestä kuvauksesta ja ehdottaa tarkempia paikantimia kuin tallennin tuottaa. Tekoälyavusteinen paikantimen korjaus auttaa myös, koska uudelleennimetty elementti on yleensä syy siihen, miksi tallennettu arvo palautuu tyhjäksi.

Kyllä. Vie testi kohteeseen Java or Python, anna sitten Copilotin muokata tasainen komentoluettelo sivuobjekteiksi ja uudelleenkäytettäviksi odotuslomakkeiksi. Tarkista hälytysten käsittely manuaalisesti, koska luotu koodi olettaa usein näkyvän valintaikkunan, jonka IDE on jo hylännyt.

Otsikkoon perustuvasta valinnasta tulee epäselvä ja väärä ikkuna saatetaan valita. Juuri tästä syystä nykyinen IDE suosii kahvoja: ota sellainen, jossa on myymäläikkunan kahva heti ikkunan avautumisen jälkeen, ja vaihda sitten kahvalla handle=${yourHandle}.

Tiivistä tämä viesti seuraavasti: