Változók tárolása, visszhang, figyelmeztetés, előugró ablakok kezelése Selenium IDE
⚡ Okos összefoglaló
Parancsok tárolása itt: Selenium Az IDE futásidejű értékeket elnevezett változókba menti, az echo parancs kiírja őket a naplóba, és egy dedikált parancscsalád kezeli a riasztásokat, a megerősítő párbeszédablakokat és a több böngészőablak közötti váltást.

Ebben az oktatóanyagban megismerkedhetsz a tárolási parancsokkal, az echo parancsgal, valamint a riasztások és felugró ablakok kezelésével. Selenium IDEEzek a parancsok együttesen egy fixen rögzített szkriptet olyanná alakítanak, amely reagál az alkalmazás futásidejű visszaadására.
⚠️ Megjegyzés a verziókkal kapcsolatban: az alábbi képernyőképek az eredetiből származnak Firefox-bővítmény Selenium IDE-ben, és a parancsok a camelCase selenese neveit használják. A jelenlegi Chrome, Firefox Az Edge kiterjesztés megtartja ugyanazt a viselkedést, de a legtöbb parancsnevet szóközökkel írja. Egy mapping A táblázat a cikk vége felé látható, és minden eredeti parancs és képernyőkép a közzétett formában kerül megőrzésre.
Selenium IDE változók
bolt
Változók tárolására Selenium IDE-ben a tárolni parancs. Az alábbi ábra a „tutorial” értéket egy „myVariable” nevű változóban tárolja.
A változó eléréséhez egyszerűen tegye ${ … } szimbólum közé. Például a „myVariable” értékének a „userName” szövegmezőbe való beírásához Mercury Tours, írja be a ${myVariable} értéket az Érték mezőbe.
Visszhang parancs Selenium IDE
Egy tárolt változó láthatatlan, amíg valami ki nem írja, és ez az, amit a visszhang parancs teszi. Lejátszás közben egy üzenetet ír az IDE naplóablakába, ami a leggyorsabb módja annak, hogy megerősítsük, hogy egy tárolási parancs rögzítette a várt eredményt, mielőtt állításokat építenénk rá.
A parancs mindkét formát elfogadja:
- Egy literális karakterlánc. Tedd be a szöveget a Target mező, például Bejelentkezési lépés befejezve, egy ellenőrzőpont megjelöléséhez egy hosszú szkriptben.
- Egy változó. Helyezze el a ${myVariable} értéket a Target mezőben, és a név helyett a tárolt érték kerül kinyomtatásra.
Két szokás teszi az echo parancsot sokkal hasznosabbá, mint amilyennek elsőre tűnik. Nyomtasson ki egy változót közvetlenül a létrehozó store parancs után, így hiba keletkezik. traca rögzítéshez, nem pedig a húsz lépéssel későbbi állításhoz. És minden üzenet elé illessze be a hozzá tartozó lépést, mivel a naplópanel minden parancsot egyetlen listában jelenít meg. Vegye figyelembe, hogy az echo csak a naplóba ír – soha nem változtatja meg az oldalt és soha nem bukik meg egy teszten, így biztonságosan véglegesen benne hagyható egy szkriptben.
StoreElementPresent
Ez a parancs a megadott elem jelenlététől függően vagy „igaz”, vagy „hamis” értéket tárol. Az alábbi szkript a „igaz” logikai értéket a „var1” változóba, a „hamis” értéket pedig a „var2” változóba tárolja. Az ellenőrzéshez az echo parancsot fogjuk használni a var1 és var2 értékeinek megjelenítéséhez. Az alap URL az alábbi illusztrációhoz a következőre volt beállítva: Mercury A túrák honlapja.
StoreText
Ez a parancs egy elem belső szövegének változóba tárolására szolgál. Az alábbi ábra a Facebook regisztrációs oldalán található h1 tag belső szövegét egy „textVar” nevű változóba tárolja.
Mivel ez az egyetlen ilyen jellegű elem az oldalon, biztonságosan használhatjuk a „css=h1”-et célpontként. Az alábbi kép ezt mutatja Selenium Az IDE képes volt elmenteni a „Sign Up” karakterláncot a „textVar” változóba, mivel az echo helyesen nyomtatta ki az értékét.
Figyelmeztetések, előugró és többszörös Windows
A riasztások valószínűleg a felugró ablakok legegyszerűbb formái. A leggyakoribb Selenium A riasztások kezelésére használt IDE-parancsok a következők:
| Figyelmeztetések | Felhasználás |
|---|---|
|
assertAlert assertNotAlert |
lekéri a riasztás üzenetét, és egy megadott karakterlánc értékkel szemben érvényesíti azt. |
|
assertAlertPresent assertAlertNotPresent |
kijelenti, hogy van-e riasztás vagy nincs |
| storeAlert | lekéri a riasztási üzenetet, és egy megadott változóban tárolja |
| storeAlertPresent | TRUE értéket ad vissza, ha riasztás van jelen, FALSE értéket egyébként |
|
verifyAlert verifyNotAlert |
lekéri a riasztás üzenetét, és ellenőrzi, hogy az megegyezik-e a megadott karakterlánc értékével |
|
verifyAlertPresent verifyAlertNotPresent |
ellenőrzi, hogy van-e riasztás vagy nincs |
Ne felejtse el ezt a két dolgot, amikor riasztásokkal dolgozik:
- Selenium Az IDE automatikusan rákattint a riasztási ablak OK gombjára, így a tényleges riasztást nem fogja látni.
- Selenium Az IDE nem tudja kezelni azokat a riasztásokat, amelyek az oldal onload() függvényén belül keletkeznek. Csak azokat a riasztásokat kezeli, amelyek az oldal teljes betöltése után keletkeznek.
Ebben a példában a storeAlert parancsot használjuk annak bemutatására, hogy bár Selenium Az IDE nem jelenítette meg a tényleges riasztást, de az üzenetet továbbra is sikerült lekérnie.
Step 1) In Selenium IDE, állítsd be az alapot URL a http://jsbin.com címre. A teljes URL a http://jsbin.com/usidix címen található. Ezek a jsbin kódrészletek a következő időpontból származnak: Firefox-plugin korszak, és előfordulhat, hogy már nem oldódik meg; minden olyan oldal, amelyen van egy riasztást kiváltó gomb, ugyanazt az eredményt reprodukálja.
Step 2) Hozd létre a szkriptet az alábbiak szerint. A click parancs a Go! gombra irányít, a storeAlert az üzenetet az alertMessage üzenetbe rögzíti, az echo pedig kinyomtatja.
Step 3) Futtassa a szkriptet, és ne számítson a tényleges riasztás megjelenésére. Az alábbi naplópanel a rögzített üzenetet mutatja, annak ellenére, hogy a párbeszédpanel soha nem volt látható.
visszaigazolások
A megerősítések olyan felugró ablakok, amelyeken egy OK és egy MÉGSE gomb látható, szemben a riasztásokkal, amelyeken csak az OK gomb látható. A megerősítések kezeléséhez használható parancsok tükrözik a riasztási parancsokat.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- bolt Megerősítés
- storeConfirmationPresent
- verifyConfirmation / verifyNotConfirmation
- verifyConfirmationPresent / verifyConfirmationNotPresent
Ezenkívül ezek a parancsok azt is jelzik, hogy Selenium melyik gombot válassza, az OK-t vagy a MÉGSE-t.
- válaszd az OkAktívMegerősítésnél / válaszd az OkAktívMegerősítésnélÉsVárj
- válassza a CancelOnNextConfirmation lehetőséget
Helyezze el ezeket a parancsokat előtt a parancs, amely aktiválja a megerősítő ablakot, így Selenium Az IDE előre tudja, melyik opciót kell választani. Ismétlem, a szkript végrehajtása során nem fogod látni a tényleges megerősítő ablakot.
Teszteljünk egy weboldalt egy olyan gombbal, amely úgy van kódolva, hogy jelezze, hogy a felhasználó az OK vagy a MÉGSE gombra kattintott.
Step 1) In Selenium IDE, állítsd be az alapot URL a http://jsbin.com címre. A teljes URL A címe http://jsbin.com/enifaf.
Step 2) Hozd létre a szkriptet az alábbiak szerint. Ezúttal először az OK gombot fogjuk megnyomni.
Step 3) Futtassa a szkriptet, és vegye figyelembe, hogy nem látja a tényleges megerősítést, de a weboldal továbbra is közli, hogy melyik gomb van érvényben. Selenium IDE megnyomva.
Step 4) Cserélje le a chooseOkOnNextConfirmation parancsot a chooseCancelOnNextConfirmation parancsra, és futtassa újra a szkriptet. Az oldal most az ellenkező választási lehetőséget jeleníti meg.
Többszörös Windows
Ha egy olyan hivatkozásra kattintasz, amely egy külön ablakot nyit meg, először utasítanod kell Selenium IDE-ben az ablak kiválasztásához, mielőtt hozzáférhetnél a benne lévő elemekhez. A korábbi IDE-ben az ablak címét használod helymeghatározóként.
A selectWindow parancsot használjuk az ablakok közötti váltáshoz.
A http://jsbin.com/ocinaj/1 linket fogjuk használni, amelynek címe „Első ablak”. Az oldalon található „ide” hivatkozás új ablakban nyitja meg a Facebookot, majd erre utasítjuk Selenium Az IDE a következőket tegye:
- Vigye át az irányítást a szülőablakból az újonnan elindított Facebook ablakba a selectWindow paranccsal, az ablak címét helymeghatározóként megadva.
- Ellenőrizze az új ablak címét.
- Jelöld ki újra az eredeti ablakot a selectWindow paranccsal, amelynek célhelye „null”.
- Ellenőrizze a jelenleg kiválasztott ablak címét.
A fenti terv az itt látható négylépéses sorozattá alakul át.
Step 1) Állítsa be az alapot URL a http://jsbin.com oldalra.
Step 2) Hozd létre a szkriptet az alábbiak szerint.
A pause parancsra szükségünk van ahhoz, hogy megvárjuk az újonnan indított ablak betöltődését, mielőtt elolvashatnánk a címét.
Step 3) Hajtsa végre a szkriptet. Vegyük észre, hogy a próbaper sikeresen átment, ami azt jelenti, hogy váltani tudtunk az ablakok között és ellenőrizni a címüket.
Mindig ne feledd, hogy a selectWindow cél „null” értékre állítása automatikusan a szülőablakot választja ki – ebben az esetben azt az ablakot, ahol a „link=here” elem található.
Jegyzet: A Facebook megváltoztatta az oldal címét a bemutató létrehozása óta. Módosítsa ennek megfelelően a szkriptben a várt címet.
Modern Selenium Ezeknek a parancsoknak az IDE-megfelelői
Az FirefoxA -plugin IDE-t ekkor vonták vissza: Firefox átkerült a WebExtensions architektúrára, és a jelenlegi Chrome-ra, Firefox Az Edge kiterjesztés a legtöbb Selenese parancsot átnevezte szóközös formátumúra. A viselkedés változatlan, így az alábbi táblázat elegendő a fenti szkriptek aktuális telepítéshez való beolvasásához.
| Régi parancs ebben az oktatóanyagban | Jelenlegi Selenium IDE parancs |
|---|---|
| tárolni | tárolni |
| visszhang | visszhang |
| áruháziSzöveg | szöveg tárolása |
| storeElementPresent | tároló elem jelenléte (vagy assert elem jelenléte) |
| assertAlert / verifyAlert | riasztás érvényesítése / riasztás ellenőrzése |
| VálasszonOkTovábbMegerősítést | válassza az OK lehetőséget a következő megerősítéskor |
| válassza a CancelOnNextConfirmation lehetőséget | a következő megerősítéskor válaszd a Mégsem lehetőséget |
| selectWindow (cím mint cél) | ablak kiválasztása handle=${handle}-tel |
Két különbséget érdemes kiemelni. A promptoknak, amelyeket a korábbi cikk nem tárgyal, mostantól saját parancsaik vannak: válasz a következő kérdésre megtervezi a választ, mielőtt megjelenik a párbeszédpanel, és webdriver válasz látható promptban egy már megnyitott promptba gépel. Az ablakváltás pedig már nem az oldal címétől függ. Futtatás kirakatkilincs először egy fogantyút rögzíteni, majd átadni handle=${a_kezed} ablak kiválasztásához. Ez a módosítás megszünteti a fenti megjegyzésben leírt hibamódot, ahol egy webhely egyszerűen átnevezi az oldalát, és a szkript nem találja meg az ablakot. A hivatalos Selenium IDE projekt webhely felsorolja a teljes aktuális parancskészletet.













