Jak používat Selen IDE se skripty & Příkazy (Assert, Verify)

Obsah:

Anonim

Jako testovanou webovou aplikaci budeme používat web Mercury Tours. Jedná se o online rezervační systém letů, který obsahuje všechny prvky, které pro tento tutoriál potřebujeme. Jeho URL je http://demo.guru99.com/test/newtours/ a toto bude naše základní URL.

Vytvořte skript nahráváním

Vytvořme nyní náš první testovací skript v selenovém IDE pomocí nejběžnější metody - nahráváním. Poté provedeme náš skript pomocí funkce přehrávání.

Krok 1

  • Spusťte Firefox a Selenium IDE.
  • Zadejte hodnotu pro naši základní adresu URL: http://demo.guru99.com/test/newtours/.
  • Zapněte tlačítko Záznam (pokud ještě není ve výchozím nastavení zapnuto).
Krok 2

Ve Firefoxu přejděte na http://demo.guru99.com/test/newtours/. Firefox by vás měl přesměrovat na stránku podobnou té, která je uvedena níže.

Krok 3
  • Klepněte pravým tlačítkem na prázdné místo na stránce, například na logo Mercury Tours v levém horním rohu. Tím se vyvolá kontextová nabídka IDE selenu. Poznámka: Neklikejte na žádné hypertextové odkazy na objekty nebo obrázky
  • Vyberte možnost „Zobrazit dostupné příkazy“.
  • Poté vyberte možnost „assertTitle exact: Welcome: Mercury Tours“. Toto je příkaz, který zajišťuje správnost názvu stránky.
Krok 4
  • Do textového pole „Uživatelské jméno“ v Mercury Tours zadejte neplatné uživatelské jméno „invalidUNN“.
  • Do textového pole „Heslo“ zadejte neplatné heslo „invalidPWD“.
Krok 5
  • Klikněte na tlačítko „Přihlásit se“. Firefox by vás měl přejít na tuto stránku.
Krok 6

Chcete-li zastavit nahrávání, vypněte tlačítko nahrávání. Váš skript by nyní měl vypadat jako ten, který je zobrazen níže.

Krok 7

Teď, když jsme hotovi s naším testovacím skriptem, uložíme ho do testovacího případu. V nabídce Soubor vyberte možnost „Uložit testovací případ“. Případně můžete jednoduše stisknout Ctrl + S.

Krok 8
  • Vyberte požadované umístění a pojmenujte testovací případ jako „Invalid_login“.
  • Klikněte na tlačítko „Uložit“.
Krok 9.

Všimněte si, že soubor byl uložen jako HTML.

Krok 10.

Vraťte se do Selenium IDE a kliknutím na tlačítko Přehrát spusťte celý skript. Selen IDE by mělo být schopné replikovat vše bezchybně.

Úvod do příkazů selenu - selenština

  • Selenské příkazy mohou mít maximálně dva parametry: cíl a hodnotu.
  • Parametry nejsou vždy vyžadovány. Záleží na tom, kolik bude příkaz potřebovat.

3 typy příkazů

Akce

Jedná se o příkazy, které přímo interagují s prvky stránky.

Příklad: příkaz „kliknout“ je akce, protože přímo komunikujete s prvkem, na který klikáte.

Příkaz „typ“ je také akce, protože vkládáte hodnoty do textového pole a textové pole vám je na oplátku zobrazí. Mezi vámi a textovým polem existuje obousměrná interakce.

Přistupující osoby

Jsou to příkazy, které vám umožňují ukládat hodnoty do proměnné.

Příklad: příkaz „storeTitle“ je přístupový objekt, protože pouze „čte“ nadpis stránky a ukládá jej do proměnné. Neinteraguje s žádným prvkem na stránce.

Tvrzení

Jsou to příkazy, které ověřují, zda je splněna určitá podmínka.

3 typy tvrzení

  • Tvrdit . Pokud příkaz „assert“ selže, test se okamžitě zastaví.
  • Ověřit . Když selže příkaz „ověřit“, Selenium IDE zaznamená tuto chybu a pokračuje v provádění testu.
  • Počkej na . Než přejdete k dalšímu příkazu, budou příkazy „waitFor“ nejprve čekat na splnění určité podmínky.
    • Pokud se podmínka stane pravdivou během čekací doby, krok projde.
    • Pokud se podmínka nestane pravdivou, krok selže. Selhání je protokolováno a provádění testu pokračuje dalším příkazem.
    • Ve výchozím nastavení je hodnota časového limitu nastavena na 30 sekund. Můžete to změnit v dialogovém okně Možnosti IDE selenu na kartě Obecné.

Assert vs. Verify

Společné příkazy

Příkaz Počet parametrů Popis
otevřeno 0 - 2

Otevře stránku pomocí adresy URL.

click / clickAndWait 1

Klikne na zadaný prvek.

typ / typKlíče 2

Zadá posloupnost znaků.

verifyTitle / assertTitle 1

Porovná skutečný název stránky s očekávanou hodnotou.

verifyTextPresent 1

Zkontroluje, zda se na stránce nachází určitý text.

verifyElementPresent 1

Zkontroluje přítomnost určitého prvku.

ověřitTabulka 2

Porovná obsah tabulky s očekávanými hodnotami.

waitForPageToLoad 1

Pozastaví provádění, dokud se stránka nenačte úplně.

waitForElementPresent 1

Pozastaví provádění, dokud nebude uveden zadaný prvek.

Vytvořte skript ručně pomocí Firebug

Nyní vytvoříme stejný testovací případ ručně zadáním příkazů. Tentokrát budeme muset použít Firebug.

Krok 1
  • Otevřete prohlížeč Firefox a Selenium IDE.
  • Zadejte základní adresu URL (http://demo.guru99.com/test/newtours/).
  • Tlačítko záznamu by mělo být VYPNUTO.
Krok 2: Klikněte na nejvyšší prázdný řádek v editoru.

Do textového pole Příkaz zadejte „otevřít“ a stiskněte klávesu Enter.

Krok 3
  • Přejděte Firefox na naši základní adresu URL a aktivujte Firebug
  • V podokně editoru IDE Selenium vyberte druhý řádek (řádek pod příkazem „otevřít“) a vytvořte druhý příkaz zadáním „assertTitle“ do pole Příkaz.
  • Klidně použijte funkci automatického doplňování.
Krok 4
  • Ve Firebugu rozbalte značku , aby se zobrazila značka .</li> <li>Klikněte na hodnotu značky <title> (což je „Welcome: Mercury Tours“) a vložte ji do pole Target v Editoru.</li> </ul> </td> </tr> <tr> <td><strong>Krok 5</strong> <ul> <li>Chcete-li vytvořit třetí příkaz, klikněte na třetí prázdný řádek v editoru a zadejte „text“ do textového pole Příkaz.</li> <li>Ve Firebugu klikněte na tlačítko „Zkontrolovat“.</li> </ul> </td> </tr> <tr> <td>Klikněte na textové pole Uživatelské jméno. Všimněte si, že Firebug vám automaticky zobrazí HTML kód pro tento prvek.</td> </tr> <tr> <td><strong>Krok 6</strong> <p>Všimněte si, že textové pole Uživatelské jméno nemá ID, ale má atribut NAME. Proto budeme jako vyhledávač používat jeho NÁZEV. Zkopírujte hodnotu JMÉNO a vložte ji do pole Cíl v Selenium IDE.</p> <p>V textovém poli Cílová předpona „userName“ s „name =“, což znamená, že selenové IDE by mělo cílit na prvek, jehož atribut NAME je „userName“.</p> <p>Do textového pole Hodnota selenového IDE napište „invalidUN“. Váš testovací skript by nyní měl vypadat jako na obrázku níže. S třetím příkazem jsme skončili. Poznámka: Místo neplatného UN můžete zadat jakýkoli jiný textový řetězec. Selenium IDE ale rozlišuje velká a malá písmena a vy zadáváte hodnoty / atributy přesně jako v aplikaci.</p> </td> </tr> <tr> <td><strong>Krok 7</strong> <ul> <li>Chcete-li vytvořit čtvrtý příkaz, zadejte do textového pole Příkaz „zadejte“.</li> <li>Pomocí tlačítka Firebug „Zkontrolovat“ znovu získáte lokátor textového pole „Heslo“.</li> </ul> <ul> <li> <p>Vložte atribut JMÉNO („heslo“) do pole Cíl a vložte před něj „name =“</p> </li> <li> <p>Do pole Hodnota v Selenium IDE napište „invalidPW“. Váš testovací skript by nyní měl vypadat jako na obrázku níže.</p> </li> </ul> </td> </tr> <tr> <td><strong>Krok 8</strong> <ul> <li>U pátého příkazu zadejte do textového pole Příkaz v IDE selenu „clickAndWait“.</li> <li>Pomocí tlačítka „Zkontrolovat“ Firebug získáte vyhledávač pro tlačítko „Přihlásit se“.</li> </ul> <ul> <li>Vložte hodnotu atributu JMÉNO („přihlášení“) do textového pole Cíl a přidejte před něj „name =“.</li> <li>Váš testovací skript by nyní měl vypadat jako na obrázku níže.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Krok 9:</strong> Uložte testovací případ stejným způsobem jako v předchozí části.</p> <a id="menu-6"></a> <h2>Pomocí tlačítka Najít</h2> <p><strong>Tlačítko Najít v IDE selenu slouží k ověření, zda to, co jsme vložili do textového pole Cíl, je skutečně správný prvek uživatelského rozhraní.</strong></p> <p>Použijme testovací případ Invalid_login, který jsme vytvořili v předchozích částech. Klikněte na libovolný příkaz se záznamem Target, řekněme třetí příkaz.</p> <p>Klikněte na tlačítko Najít. Všimněte si, že textové pole Uživatelské jméno na stránce Mercury Tours se na okamžik zvýrazní.</p> <p>To naznačuje, že IDE selenu dokázalo správně detekovat a přistupovat k očekávanému prvku. Pokud tlačítko Najít zvýraznilo jiný prvek nebo vůbec žádný, pak musí být ve vašem skriptu něco špatně.</p> <a id="menu-7"></a> <h2>Proveďte příkaz</h2> <p><strong>To vám umožní provést libovolný jeden příkaz bez spuštění celého testovacího případu</strong> . Stačí kliknout na řádek, který chcete provést, a poté buď kliknout na „Akce> Spustit tento příkaz“ z řádku nabídek nebo jednoduše stisknout „X“ na klávesnici.</p> <p><strong>Krok 1.</strong> Ujistěte se, že je váš prohlížeč na domovské stránce Mercury Tours. Klikněte na příkaz, který chcete provést. V tomto příkladu klikněte na řádek „type | userName | invalidUN“.</p> <p><strong>Krok 2.</strong> Stiskněte „X“ na klávesnici.</p> <p><strong>Krok 3.</strong> Všimněte si, že textové pole pro uživatelské jméno bude vyplněno textem „invalidUN“</p> <p><strong>Provádění příkazů tímto způsobem je vysoce závislé na stránce, kterou Firefox aktuálně zobrazuje</strong> . To znamená, že pokud vyzkoušíte výše uvedený příklad se zobrazenou domovskou stránkou Google namísto Mercury Tours, váš krok se nezdaří, protože na domovské stránce Google není žádné textové pole s atributem „userName“.</p> <a id="menu-8"></a> <h2>Startovní bod</h2> <p><strong>Počáteční bod je indikátor, který říká selenovému IDE, které řádky začnou s prováděním</strong> . <strong>Jeho klávesová zkratka je „S“.</strong></p> <p>Ve výše uvedeném příkladu se přehrávání spustí na třetím řádku (zadejte | heslo | invalidPW). <strong>V jednom testovacím skriptu můžete mít pouze jeden počáteční bod.</strong></p> <p>Počáteční bod je podobný příkazu Provést v tom, že jsou závislé na aktuálně zobrazené stránce. Počáteční bod selže, pokud jste na nesprávné stránce.</p> <a id="menu-9"></a> <h2>Hraniční body</h2> <p>Hraniční body jsou indikátory, které říkají Selenium IDE, kde má automaticky pozastavit test. <strong>Klávesová zkratka je „B“.</strong></p> <p>Žluté zvýraznění znamená, že aktuální krok čeká na vyřízení. To dokazuje, že selenové IDE v tomto kroku pozastavilo provádění. <strong>V jednom testovacím případě můžete mít více zarážek.</strong></p> <a id="menu-10"></a> <h2>Krok</h2> <p>Umožňuje vám provádět po sobě následující příkazy po pozastavení testovacího případu. Použijme scénář v předchozí části „Hraniční body“.</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Před kliknutím na „Krok“.</strong></p> <p>Testovací případ se pozastaví na řádku „clickAndWait | přihlášení“.</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Po kliknutí na „Krok“.</strong></p> <p>Spustí se řádek „clickAndWait | přihlášení“ a pozastaví se na další příkaz (verifyTitle | Sign-on: Mercury Tours).</p> <p>Všimněte si, že další řádek je pozastaven, i když tam není žádný zarážka. To je hlavní účel funkce Krok - provádí následující příkazy jeden po druhém, aby vám poskytl více času na kontrolu výsledku po každém kroku.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Důležité věci, které je třeba si všimnout při použití jiných formátů v zobrazení zdroje</h2> <p><strong>Selenium IDE funguje dobře pouze s HTML - ostatní formáty jsou stále v experimentálním režimu</strong> . Je to <strong>není vhodné</strong> vytvářet nebo upravovat testy za použití jiných formátů zobrazení zdroje, protože tam je ještě hodně práce nezbytná, aby byl stabilní. Níže jsou známé chyby od verze 1.9.1.</p> <ul> <li>Nebudete moci provádět přehrávání ani přepnout zpět do zobrazení tabulky, pokud se nevrátíte k HTML.</li> <li>Jediným způsobem, jak bezpečně přidat příkazy do zdrojového kódu, je jejich záznam.</li> <li>Když zdrojový kód upravíte ručně, při přepnutí na jiný formát dojde ke ztrátě celého kódu.</li> <li>I když můžete svůj testovací případ uložit v zobrazení zdroje, Selenium IDE jej nebude moci otevřít.</li> </ul> <p><strong>Doporučeným způsobem převodu selenských testů je použití možnosti „Exportovat testovací případ jako…“ v nabídce Soubor, nikoli prostřednictvím zobrazení zdroje.</strong></p> <a id="menu-12"></a> <h2>souhrn</h2> <ul> <li>Testovací skripty lze vytvořit buď zaznamenáním nebo ručním zadáním příkazů a parametrů.</li> <li>Při ručním vytváření skriptů se k získání lokátoru používá Firebug.</li> <li>Tlačítko Najít slouží ke kontrole, zda má příkaz přístup ke správnému prvku.</li> <li>Zobrazení tabulky zobrazuje testovací skript ve formě tabulky, zatímco zobrazení zdroje zobrazení ve formátu HTML.</li> <li>Změna zobrazení zdroje na jiný formát než HTML je stále experimentální.</li> <li>Při vytváření testů v jiných formátech nepoužívejte zobrazení zdroje. Místo toho použijte funkce Export.</li> <li>Parametry nejsou vždy vyžadovány. Záleží na příkazu.</li> <li>Existují tři typy příkazů:</li> <ul> <li>Akce - přímo interaguje s prvky stránky</li> <li>Accessors - „čte“ vlastnost prvku a ukládá ji do proměnné</li> <li>Tvrzení - porovnává skutečnou hodnotu s očekávanou</li> </ul> <li>Tvrzení mají tři typy:</li> <ul> <li>Tvrdit - při selhání se další kroky již neprovádějí</li> <li>Ověření - i po selhání budou provedeny následující kroky.</li> <li>WaitFor - projde, pokud se zadaná podmínka stane pravdivou během časového limitu; jinak to selže</li> </ul> <li>Nejběžnější příkazy jsou:</li> <ul> <li>otevřeno</li> <li>click / clickAndWait</li> <li>typ / typKlíče</li> <li>verifyTitle / assertTitle</li> <li>verifyTextPresent</li> <li>verifyElementPresent</li> <li>ověřitTabulka</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Populární Příspěvky</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003953-get-file-size" title="Získejte velikost souboru - Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/5882430/get_file_size_css-tricks.png.webp" loading="lazy" alt="Získejte velikost souboru - Triky CSS" title="Získejte velikost souboru - Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003953-get-file-size" title="Získejte velikost souboru - Triky CSS" rel="bookmark">Získejte velikost souboru - Triky CSS 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003954-get-image-information" title="Získat informace o obrázku - Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/6823963/get_image_information_css-tricks.png.webp" loading="lazy" alt="Získat informace o obrázku - Triky CSS" title="Získat informace o obrázku - Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003954-get-image-information" title="Získat informace o obrázku - Triky CSS" rel="bookmark">Získat informace o obrázku - Triky CSS 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003955-get-users-ip-address" title="Získejte IP adresu uživatelů - Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/6077363/get_users_ip_address_css-tricks.png.webp" loading="lazy" alt="Získejte IP adresu uživatelů - Triky CSS" title="Získejte IP adresu uživatelů - Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003955-get-users-ip-address" title="Získejte IP adresu uživatelů - Triky CSS" rel="bookmark">Získejte IP adresu uživatelů - Triky CSS 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Nejlepší názory na měsíc</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002928-flex-shrink" title="Flex-shrink - Triky CSS" rel="bookmark">Flex-shrink - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002929-filter" title="Filtr - Triky CSS" rel="bookmark">Filtr - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002930-display" title="Zobrazit - Triky CSS" rel="bookmark">Zobrazit - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002931-flex-wrap" title="Flex-wrap - Triky CSS" rel="bookmark">Flex-wrap - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002932-font-family" title="Rodina fontů - Triky CSS" rel="bookmark">Rodina fontů - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002933-font" title="Písmo - Triky CSS" rel="bookmark">Písmo - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002934-font-display" title="Zobrazení písma - Triky CSS" rel="bookmark">Zobrazení písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002935-font-optical-sizing" title="Optická velikost písma - Triky CSS" rel="bookmark">Optická velikost písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002936-font-stretch" title="Roztažení písma - Triky CSS" rel="bookmark">Roztažení písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002937-font-feature-settings" title="Nastavení funkce písma - Triky CSS" rel="bookmark">Nastavení funkce písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002938-font-size-adjust" title="Upravit velikost písma - Triky CSS" rel="bookmark">Upravit velikost písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002939-font-size" title="Velikost písma - Triky CSS" rel="bookmark">Velikost písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002940-font-style" title="Styl písma - Triky CSS" rel="bookmark">Styl písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002941-font-variant" title="Varianta písma - Triky CSS" rel="bookmark">Varianta písma - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002942-font-kerning" title="Vyrovnání písma - Triky CSS" rel="bookmark">Vyrovnání písma - Triky CSS</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Nejlepší Články</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003509-drop-caps" title="Kapátka - Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/8196444/drop_caps_css-tricks.png.webp" loading="lazy" alt="Kapátka - Triky CSS" title="Kapátka - Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003509-drop-caps" title="Kapátka - Triky CSS" rel="bookmark">Kapátka - Triky CSS 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003510-expanding-boxes-navigation" title="Rozbalení navigace v polích Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/5313969/expanding_boxes_navigation_css-tricks.png.webp" loading="lazy" alt="Rozbalení navigace v polích Triky CSS" title="Rozbalení navigace v polích Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003510-expanding-boxes-navigation" title="Rozbalení navigace v polích Triky CSS" rel="bookmark">Rozbalení navigace v polích Triky CSS 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003511-flip-an-image" title="Převrátit obrázek - Triky CSS" rel="bookmark"><img src="https://cdn.css-code.org/2404894/flip_an_image_css-tricks.png.webp" loading="lazy" alt="Převrátit obrázek - Triky CSS" title="Převrátit obrázek - Triky CSS" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003511-flip-an-image" title="Převrátit obrázek - Triky CSS" rel="bookmark">Převrátit obrázek - Triky CSS 2025</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Populární Příspěvky</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225835-phases-of-compiler-with-example" title="Fáze překladače s příkladem" rel="bookmark">Fáze překladače s příkladem</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225837-r-sort-a-data-frame-using-order" title="R Seřadit datový rámec pomocí Order ()" rel="bookmark">R Seřadit datový rámec pomocí Order ()</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225839-lexical-analysis-in-compiler-design-with-example" title="Lexikální analýza v návrhu kompilátoru s příkladem" rel="bookmark">Lexikální analýza v návrhu kompilátoru s příkladem</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225840-syntax-analysis-compiler-top-down-and-bottom-up-parsing-types" title="Analýza syntaxe: kompilátor shora dolů a Typy analýzy zdola nahoru" rel="bookmark">Analýza syntaxe: kompilátor shora dolů a Typy analýzy zdola nahoru</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225841-compiler-vs-interpreter-complete-difference-between-compiler-and-interpreter" title="Překladač vs Tlumočník: Úplný rozdíl mezi překladačem a tlumočníkem" rel="bookmark">Překladač vs Tlumočník: Úplný rozdíl mezi překladačem a tlumočníkem</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Redakce Choice</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224762-kotlin-vs-java-whats-the-difference" title="Kotlin vs Java: Jaký je rozdíl?" rel="bookmark">Kotlin vs Java: Jaký je rozdíl?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224763-10-best-programming-language-to-learn-in-2021" title="10 nejlepších programovacích jazyků pro výuku v roce 2021" rel="bookmark">10 nejlepších programovacích jazyků pro výuku v roce 2021</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224764-what-is-mean-stack-developer-skills-salary-growth" title="Co je Mean Stack Developer? Dovednosti, plat, růst" rel="bookmark">Co je Mean Stack Developer? Dovednosti, plat, růst</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224765-7-best-budget-ultrawide-monitor-2021-reviews" title="7 NEJLEPŠÍ Budget Ultrawide Monitor (2021 recenzí)" rel="bookmark">7 NEJLEPŠÍ Budget Ultrawide Monitor (2021 recenzí)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224766-introduction-to-linux-operating-system-os-what-is-linux" title="Úvod do operačního systému Linux (OS): Co je to Linux?" rel="bookmark">Úvod do operačního systému Linux (OS): Co je to Linux?</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Nejlepší Články</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003135-only-child" title=": pouze dítě - Triky CSS" rel="bookmark">: pouze dítě - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003137-nth-last-child" title=": n-poslední dítě - Triky CSS" rel="bookmark">: n-poslední dítě - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003138-optional" title=": nepovinné - Triky CSS" rel="bookmark">: nepovinné - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003139-nth-of-type" title=": n-tý typ - Triky CSS" rel="bookmark">: n-tý typ - Triky CSS</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003140-only-of-type" title=": pouze typu - Triky CSS" rel="bookmark">: pouze typu - Triky CSS</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright cs.css-code.org, 2025 Říjen | <a href="https://cs.css-code.org/about-site" title="O webu">O webu</a> | <a href="https://cs.css-code.org/contacts" title="Kontakty">Kontakty</a> | <a href="https://cs.css-code.org/privacy-policy" title="Zásady ochrany osobních údajů">Zásady ochrany osobních údajů</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>