Sådan bruges Selen IDE med Scripts & Kommandoer (Assert, Verify)

Indholdsfortegnelse:

Anonim

Vi bruger Mercury Tours-webstedet som vores webapplikation under test. Det er et online flyreservationssystem, der indeholder alle de elementer, vi har brug for til denne vejledning. Dens URL er http://demo.guru99.com/test/newtours/, og dette vil være vores basis-URL.

Opret et script ved optagelse

Lad os nu oprette vores første testscript i Selen IDE ved hjælp af den mest almindelige metode - ved optagelse. Derefter udfører vi vores script ved hjælp af afspilningsfunktionen.

Trin 1

  • Start Firefox og Selen IDE.
  • Indtast værdien for vores basis-URL: http://demo.guru99.com/test/newtours/.
  • Slå optageknappen til (hvis den endnu ikke er slået til som standard).
Trin 2

I Firefox skal du navigere til http://demo.guru99.com/test/newtours/. Firefox skal føre dig til den side, der ligner den, der er vist nedenfor.

Trin 3
  • Højreklik på et tomt rum på siden, som på Mercury Tours-logoet i øverste venstre hjørne. Dette åbner Selenium IDE-kontekstmenuen. Bemærk: Klik ikke på hyperlinkede objekter eller billeder
  • Vælg indstillingen "Vis tilgængelige kommandoer".
  • Vælg derefter "assertTitle exact: Welcome: Mercury Tours." Dette er en kommando, der sørger for, at sidetitlen er korrekt.
Trin 4
  • I tekstfeltet "Brugernavn" i Mercury Tours skal du skrive et ugyldigt brugernavn, "ugyldigt UNN".
  • Skriv en ugyldig adgangskode, "ugyldigPWD", i tekstboksen "Adgangskode".
Trin 5
  • Klik på knappen "Log ind". Firefox skal føre dig til denne side.
Trin 6

Slå optageknappen fra for at stoppe optagelsen. Dit script skal nu se ud som det nedenfor.

Trin 7

Nu hvor vi er færdige med vores test script, gemmer vi det i en test sag. I menuen File skal du vælge "Save Test Case". Alternativt kan du blot trykke på Ctrl + S.

Trin 8
  • Vælg din ønskede placering, og navngiv derefter testsagen som "Ugyldig_login".
  • Klik på knappen "Gem".
Trin 9.

Bemærk, at filen blev gemt som HTML.

Trin 10.

Gå tilbage til Selenium IDE, og klik på knappen Afspil for at udføre hele scriptet. Selen IDE skal være i stand til at replikere alt fejlfrit.

Introduktion til Selen Commands - Selenese

  • Selenese-kommandoer kan maksimalt have to parametre: mål og værdi.
  • Parametre kræves ikke hele tiden. Det afhænger af, hvor mange kommandoen har brug for.

3 typer kommandoer

Handlinger

Dette er kommandoer, der direkte interagerer med sideelementer.

Eksempel: kommandoen "klik" er en handling, fordi du interagerer direkte med det element, du klikker på.

Kommandoen "type" er også en handling, fordi du lægger værdier i et tekstfelt, og tekstfeltet viser dem til gengæld. Der er en tovejs interaktion mellem dig og tekstboksen.

Tilbehør

De er kommandoer, der giver dig mulighed for at gemme værdier til en variabel.

Eksempel: kommandoen "storeTitle" er en accessor, fordi den kun "læser" sidetitlen og gemmer den i en variabel. Det interagerer ikke med noget element på siden.

Påstande

De er kommandoer, der verificerer, om en bestemt betingelse er opfyldt.

3 typer påstande

  • Påstå . Når en "assert" -kommando mislykkes, stoppes testen med det samme.
  • Bekræft . Når en "bekræft" kommando mislykkes, logger Selenium IDE denne fejl og fortsætter med testudførelsen.
  • Vent til . Før du fortsætter til den næste kommando, venter "waitFor" -kommandoer først på, at en bestemt tilstand bliver sand.
    • Hvis tilstanden bliver sand inden for ventetiden, går trinnet.
    • Hvis betingelsen ikke bliver sand, mislykkes trinnet. Fejl logges, og testudførelse fortsætter til næste kommando.
    • Som standard er timeoutværdien indstillet til 30 sekunder. Du kan ændre dette i dialogboksen Indstillinger for Selen IDE under fanen Generelt.

Assert vs. Verify

Almindelige kommandoer

Kommando Antal parametre Beskrivelse
åben 0 - 2

Åbner en side ved hjælp af en URL.

klik / klik og vent 1

Klik på et bestemt element.

type / typeKeys 2

Indtaster en række tegn.

verificereTitle / assertTitle 1

Sammenligner den aktuelle sidetitel med en forventet værdi.

verificereTextPræsent 1

Kontrollerer, om der findes en bestemt tekst på siden.

verificereElementPræsent 1

Kontrollerer tilstedeværelsen af ​​et bestemt element.

verificeringstabel 2

Sammenligner indholdet af en tabel med forventede værdier.

ventForPageToLoad 1

Sætter udførelsen på pause, indtil siden er indlæst helt.

waitForElementPresent 1

Sætter udførelsen på pause, indtil det angivne element bliver til stede.

Opret et script manuelt med Firebug

Nu skal vi genskabe den samme testtilfælde manuelt ved at indtaste kommandoerne. Denne gang skal vi bruge Firebug.

Trin 1
  • Åbn Firefox og Selen IDE.
  • Indtast grundwebadressen (http://demo.guru99.com/test/newtours/).
  • Optageknappen skal være FRA.
Trin 2: Klik på den øverste tomme linje i Editoren.

Skriv "åben" i tekstfeltet Kommando, og tryk på Enter.

Trin 3
  • Naviger Firefox til vores basis-URL, og aktiver Firebug
  • I ruden Selen IDE Editor skal du vælge den anden linje (linjen under kommandoen "åben") og oprette den anden kommando ved at skrive "assertTitle" i kommandofeltet.
  • Du er velkommen til at bruge funktionen autofuldførelse.
Trin 4
  • I Firebug skal du udvide -tagget for at få vist -tagget.</li> <li>Klik på værdien af ​​<title> -tagget (som er "Welcome: Mercury Tours"), og indsæt det i feltet Target i Editoren.</li> </ul> </td> </tr> <tr> <td><strong>Trin 5</strong> <ul> <li>For at oprette den tredje kommando skal du klikke på den tredje tomme linje i Editoren og indtaste "type" i tekstfeltet Kommando.</li> <li>I Firebug skal du klikke på knappen "Inspicer".</li> </ul> </td> </tr> <tr> <td>Klik på tekstfeltet Brugernavn. Bemærk, at Firebug automatisk viser dig HTML-koden for dette element.</td> </tr> <tr> <td><strong>Trin 6</strong> <p>Bemærk, at tekstfeltet Brugernavn ikke har et ID, men det har en NAVN-attribut. Vi vil derfor bruge dets NAVN som lokaliserende. Kopier NAVN-værdien, og indsæt den i feltet Mål i Selen IDE.</p> <p>Stadig i tekstfeltet Mål, præfikser "userName" med "name =", hvilket indikerer, at Selen IDE skal målrette mod et element, hvis NAME-attribut er "userName".</p> <p>Skriv "ugyldig UN" i tekstfeltet Værdi i Selen IDE. Dit testscript skal nu se ud som billedet nedenfor. Vi er færdige med den tredje kommando. Bemærk: I stedet for ugyldig UN kan du indtaste enhver anden tekststreng. Men Selen IDE er store og små bogstaver, og du skriver værdier / attributter nøjagtigt som i applikationen.</p> </td> </tr> <tr> <td><strong>Trin 7</strong> <ul> <li>For at oprette den fjerde kommando skal du indtaste "type" i tekstfeltet Kommando.</li> <li>Brug igen Firebugs "Inspicer" -knap for at hente lokaliseringen til tekstboksen "Adgangskode".</li> </ul> <ul> <li> <p>Indsæt NAME-attributten ("adgangskode") i feltet Mål, og præfikset med "navn ="</p> </li> <li> <p>Skriv "invalidPW" i feltet Værdi i Selen IDE. Dit testscript skal nu se ud som billedet nedenfor.</p> </li> </ul> </td> </tr> <tr> <td><strong>Trin 8</strong> <ul> <li>For den femte kommando skal du skrive "clickAndWait" i kommandotekstfeltet i Selen IDE.</li> <li>Brug Firebug's "Inspicer" -knap for at hente lokalisatoren til knappen "Log ind".</li> </ul> <ul> <li>Indsæt værdien af ​​attributten NAME ("login") i tekstfeltet Mål, og præfikset med "name =".</li> <li>Dit testscript skal nu se ud som billedet nedenfor.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Trin 9:</strong> Gem testtilfældet på samme måde som i det foregående afsnit.</p> <a id="menu-6"></a> <h2>Brug af Find-knappen</h2> <p><strong>Find-knappen i Selen IDE bruges til at kontrollere, om det, vi havde sat i tekstfeltet Mål, faktisk er det rigtige UI-element.</strong></p> <p>Lad os bruge Invalid_login test case, som vi oprettede i de foregående sektioner. Klik på en vilkårlig kommando med en Target-post, sig den tredje kommando.</p> <p>Klik på knappen Find. Bemærk, at tekstfeltet Brugernavn på siden Mercury Tours bliver fremhævet i et sekund.</p> <p>Dette indikerer, at Selen IDE var i stand til at detektere og få adgang til det forventede element korrekt. Hvis Find-knappen fremhæver et andet eller slet ikke noget element, skal der være noget galt med dit script.</p> <a id="menu-7"></a> <h2>Udfør kommando</h2> <p><strong>Dette giver dig mulighed for at udføre en enkelt kommando uden at køre hele testsagen</strong> . Klik bare på den linje, du vil udføre, og klik derefter enten på "Handlinger> Udfør denne kommando" fra menulinjen, eller tryk blot på "X" på dit tastatur.</p> <p><strong>Trin 1.</strong> Sørg for, at din browser er på Mercury Tours hjemmeside. Klik på den kommando, du vil udføre. I dette eksempel skal du klikke på linjen "type | brugernavn | ugyldig UN".</p> <p><strong>Trin 2.</strong> Tryk på "X" på tastaturet.</p> <p><strong>Trin 3.</strong> Bemærk, at tekstfeltet for brugernavn bliver befolket med teksten "ugyldig UN"</p> <p><strong>At udføre kommandoer på denne måde afhænger meget af den side, som Firefox i øjeblikket viser</strong> . Dette betyder, at hvis du prøver eksemplet ovenfor med Google-startsiden vist i stedet for Mercury Tours ', vil dit trin mislykkes, fordi der ikke er noget tekstfelt med en "brugernavn" -attribut på Googles startside.</p> <a id="menu-8"></a> <h2>Startpunkt</h2> <p><strong>Et startpunkt er en indikator, der fortæller Selen IDE, hvilke linjer udførelsen starter</strong> . <strong>Dens genvejstast er "S".</strong></p> <p>I eksemplet ovenfor starter afspilning på tredje linje (type | adgangskode | ugyldigPW). <strong>Du kan kun have et startpunkt i et enkelt test script.</strong></p> <p>Startpunktet ligner Udfør kommando, således at de er afhængige af den aktuelt viste side. Startpunktet mislykkes, hvis du er på den forkerte side.</p> <a id="menu-9"></a> <h2>Breakpoints</h2> <p>Breakpoints er indikatorer, der fortæller Selen IDE, hvor testen automatisk skal standses. <strong>Genvejstasten er "B".</strong></p> <p>Den gule fremhævning betyder, at det aktuelle trin afventer. Dette beviser, at Selen IDE har standset udførelsen på det trin. <strong>Du kan have flere brudpunkter i en testtilfælde.</strong></p> <a id="menu-10"></a> <h2>Trin</h2> <p>Det giver dig mulighed for at udføre efterfølgende kommandoer en ad gangen efter at have sat testsagen på pause. Lad os bruge scenariet i det foregående afsnit "Breakpoints."</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Før du klikker på "Trin".</strong></p> <p>Testsagen stopper på linjen "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Efter at have klikket på "Trin".</strong></p> <p>Linjen "clickAndWait | login" køres og sættes på pause til den næste kommando (verificereTitle | Log på: Mercury Tours).</p> <p>Bemærk, at den næste linje er sat på pause, selvom der ikke er noget brudpunkt der. Dette er hovedformålet med trinfunktionen - den udfører de efterfølgende kommandoer en ad gangen for at give dig mere tid til at inspicere resultatet efter hvert trin.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Vigtige ting at bemærke, når du bruger andre formater i kildevisning</h2> <p><strong>Selen IDE fungerer kun godt med HTML - andre formater er stadig i eksperimentel tilstand</strong> . Det <strong>tilrådes IKKE</strong> at oprette eller redigere tests ved hjælp af andre formater i Source View, fordi der stadig er meget arbejde, der er nødvendigt for at gøre det stabilt. Nedenfor er de kendte fejl fra version 1.9.1.</p> <ul> <li>Du kan ikke udføre afspilning eller skifte tilbage til tabelvisning, medmindre du vender tilbage til HTML.</li> <li>Den eneste måde at tilføje kommandoer sikkert på kildekoden er ved at optage dem.</li> <li>Når du ændrer kildekoden manuelt, går alt det tabt, når du skifter til et andet format.</li> <li>Selvom du kan gemme din testsag, mens du er i Source View, kan Selenium IDE ikke åbne den.</li> </ul> <p><strong>Den anbefalede måde at konvertere Selenese-test på er at bruge indstillingen "Eksportér testsag som ..." under menuen Filer og ikke gennem kildevisningen.</strong></p> <a id="menu-12"></a> <h2>Resumé</h2> <ul> <li>Testskripter kan oprettes enten ved at optage eller skrive kommandoer og parametre manuelt.</li> <li>Når man opretter scripts manuelt, bruges Firebug til at hente locatoren.</li> <li>Find-knappen bruges til at kontrollere, om kommandoen er i stand til at få adgang til det rigtige element.</li> <li>Tabelvisning viser et testscript i tabelform, mens Source View viser det i HTML-format.</li> <li>At ændre kildevisningen til et ikke-HTML-format er stadig eksperimentelt.</li> <li>Brug ikke Source View til at oprette tests i andre formater. Brug eksportfunktionerne i stedet.</li> <li>Parametre kræves ikke hele tiden. Det afhænger af kommandoen.</li> <li>Der er tre typer kommandoer:</li> <ul> <li>Handlinger - interagerer direkte med sideelementer</li> <li>Accessors - "læser" en elementejendom og gemmer den i en variabel</li> <li>Påstande - sammenligner en faktisk værdi med en forventet</li> </ul> <li>Påstande har tre typer:</li> <ul> <li>Påstand - efter fejl udføres efterfølgende trin ikke længere</li> <li>Bekræft - efter fejl udføres efterfølgende trin stadig.</li> <li>WaitFor - passerer, hvis den angivne betingelse bliver sand inden for timeoutperioden; Ellers mislykkes det</li> </ul> <li>De mest almindelige kommandoer er:</li> <ul> <li>åben</li> <li>klik / klik og vent</li> <li>type / typeKeys</li> <li>verificereTitle / assertTitle</li> <li>verificereTextPræsent</li> <li>verificereElementPræsent</li> <li>verificeringstabel</li> <li>ventForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Populære Indlæg</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="/8003293-002-establishing-redesign-goals" title="# 002: Etablering af redesignmål - CSS-tricks" rel="bookmark"><img src="https://cdn.css-code.org/2719783/002_establishing_redesign_goals_css-tricks.png.webp" loading="lazy" alt="# 002: Etablering af redesignmål - CSS-tricks" title="# 002: Etablering af redesignmål - CSS-tricks" 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="/8003293-002-establishing-redesign-goals" title="# 002: Etablering af redesignmål - CSS-tricks" rel="bookmark"># 002: Etablering af redesignmål - CSS-tricks 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="/8003294-001-taking-content-inventory" title="# 001: Tager indholdsopgørelse - CSS-tricks" rel="bookmark"><img src="https://cdn.css-code.org/4399325/001_taking_content_inventory_css-tricks.png.webp" loading="lazy" alt="# 001: Tager indholdsopgørelse - CSS-tricks" title="# 001: Tager indholdsopgørelse - CSS-tricks" 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="/8003294-001-taking-content-inventory" title="# 001: Tager indholdsopgørelse - CSS-tricks" rel="bookmark"># 001: Tager indholdsopgørelse - CSS-tricks 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="/8003295-004-starting-in-photoshop-background-texture-and-main-branding" title="# 004: Start i Photoshop, baggrundsstruktur og hovedmærkning - CSS-tricks" rel="bookmark"><img src="https://cdn.css-code.org/5405670/004_starting_in_photoshop-_background_texture-_and_main_branding_css-tricks.png.webp" loading="lazy" alt="# 004: Start i Photoshop, baggrundsstruktur og hovedmærkning - CSS-tricks" title="# 004: Start i Photoshop, baggrundsstruktur og hovedmærkning - CSS-tricks" 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="/8003295-004-starting-in-photoshop-background-texture-and-main-branding" title="# 004: Start i Photoshop, baggrundsstruktur og hovedmærkning - CSS-tricks" rel="bookmark"># 004: Start i Photoshop, baggrundsstruktur og hovedmærkning - CSS-tricks 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Bedste anmeldelser for måned</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="/8224524-c-bitwise-operators-and-or-xor-shift-and-complement-with-example" title="C Bitvis operatører: AND, OR, XOR, Shift & Supplement (med eksempel)" rel="bookmark">C Bitvis operatører: AND, OR, XOR, Shift & Supplement (med eksempel)</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="/8224525-functions-pointers-in-c-programming-with-examples" title="Funktioner markører i C programmering med eksempler" rel="bookmark">Funktioner markører i C programmering med eksempler</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="/8224526-dynamic-memory-allocation-in-c-malloc-calloc-functions" title="Dynamisk hukommelsesallokering i C: funktioner i malloc (), calloc ()" rel="bookmark">Dynamisk hukommelsesallokering i C: funktioner i malloc (), calloc ()</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="/8224527-typecasting-in-c-implicit-explicit-with-example" title="TypeCasting i C: Implicit, eksplicit med eksempel" rel="bookmark">TypeCasting i C: Implicit, eksplicit med eksempel</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="/8224531-difference-between-c-and-java" title="Forskel mellem C og Java" rel="bookmark">Forskel mellem C og Java</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="/8224532-difference-between-structure-and-union" title="Forskel mellem struktur og union" rel="bookmark">Forskel mellem struktur og union</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="/8224533-difference-between-c-and-c" title="Forskellen mellem C og C ++" rel="bookmark">Forskellen mellem C og C ++</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="/8224534-malloc-vs-calloc-key-differences-explained-with-examples" title="Malloc () vs calloc (): Nøgleforskelle forklaret med eksempler" rel="bookmark">Malloc () vs calloc (): Nøgleforskelle forklaret med eksempler</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="/8224535-malloc-function-in-c-library-with-example" title="Malloc () Funktion i C-bibliotek med EKSEMPEL" rel="bookmark">Malloc () Funktion i C-bibliotek med EKSEMPEL</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="/8224536-calloc-function-in-c-library-with-program-example" title="Calloc () Funktion i C-bibliotek med program EKSEMPEL" rel="bookmark">Calloc () Funktion i C-bibliotek med program EKSEMPEL</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="/8224537-realloc-function-in-c-library-how-to-use-learn-with-example" title="Realloc () -funktion i C-bibliotek: Hvordan bruges det? Lær med eksempel" rel="bookmark">Realloc () -funktion i C-bibliotek: Hvordan bruges det? Lær med eksempel</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="/8224538-free-function-in-c-library-how-to-use-learn-with-example" title="Gratis () Funktion i C-bibliotek: Hvordan bruges det? Lær med eksempel" rel="bookmark">Gratis () Funktion i C-bibliotek: Hvordan bruges det? Lær med eksempel</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="/8224539-difference-between-strlen-and-sizeof-for-string-in-c" title="Forskel mellem strlen () og sizeof () for streng i C" rel="bookmark">Forskel mellem strlen () og sizeof () for streng i C</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="/8224540-top-100-c-programming-interview-questions-and-answers" title="Top 100 C-programmeringsinterviewspørgsmål & Svar" rel="bookmark">Top 100 C-programmeringsinterviewspørgsmål & Svar</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="/8224541-c-programming-language-pdf-basics-tutorial-for-beginners" title="C Programmeringssprog PDF: Grundlæggende vejledning til begyndere" rel="bookmark">C Programmeringssprog PDF: Grundlæggende vejledning til begyndere</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Top Artikler</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="/8226466-what-is-hive-architecture-and-modes" title="Hvad er Hive? Arkitektur & Tilstande" rel="bookmark"><img src="https://cdn.css-code.org/3644410/what_is_hive_architecture_ampamp_modes.png.webp" loading="lazy" alt="Hvad er Hive? Arkitektur & Tilstande" title="Hvad er Hive? Arkitektur & Tilstande" 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="/8226466-what-is-hive-architecture-and-modes" title="Hvad er Hive? Arkitektur & Tilstande" rel="bookmark">Hvad er Hive? Arkitektur & Tilstande 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="/8226467-how-to-download-and-install-hive-on-ubuntu" title="Sådan downloades & Installer HIVE på Ubuntu" rel="bookmark"><img src="https://cdn.css-code.org/3778832/how_to_download_ampamp_install_hive_on_ubuntu.png.webp" loading="lazy" alt="Sådan downloades & Installer HIVE på Ubuntu" title="Sådan downloades & Installer HIVE på Ubuntu" 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="/8226467-how-to-download-and-install-hive-on-ubuntu" title="Sådan downloades & Installer HIVE på Ubuntu" rel="bookmark">Sådan downloades & Installer HIVE på Ubuntu 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="/8226468-hive-data-types-and-create-drop-database" title="Hive-datatyper & Opret, slip database" rel="bookmark"><img src="https://cdn.css-code.org/4938901/hive_data_types_ampamp_create-_drop_database.png.webp" loading="lazy" alt="Hive-datatyper & Opret, slip database" title="Hive-datatyper & Opret, slip database" 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="/8226468-hive-data-types-and-create-drop-database" title="Hive-datatyper & Opret, slip database" rel="bookmark">Hive-datatyper & Opret, slip database 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ære Indlæg</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225191-python-xml-parser-tutorial-read-xml-file-exampleminidom-elementtree" title="Python XML Parser-vejledning: Læs eksempel på xml-fil (Minidom, ElementTree)" rel="bookmark">Python XML Parser-vejledning: Læs eksempel på xml-fil (Minidom, ElementTree)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225192-python-calendar-tutorial-with-example" title="Python CALENDAR Tutorial med eksempel" rel="bookmark">Python CALENDAR Tutorial med eksempel</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225194-import-module-in-python-with-examples" title="Importer modul i Python med eksempler" rel="bookmark">Importer modul i Python med eksempler</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225195-multithreading-in-python-with-global-interpreter-lock-gil-example" title="Multithreading i Python med Global Interpreter Lock (GIL) eksempel" rel="bookmark">Multithreading i Python med Global Interpreter Lock (GIL) eksempel</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8225196-10-best-python-ide-python-editors-for-windows-linux-and-mac" title="10 BEDSTE Python IDE - Python Editors til Windows, Linux & Mac" rel="bookmark">10 BEDSTE Python IDE - Python Editors til Windows, Linux & Mac</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Redaktørens Valg</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003167-scroll-shadows" title="Rul skygger - CSS-tricks" rel="bookmark">Rul skygger - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003168-yellow-flash" title="Gul blitz - CSS-tricks" rel="bookmark">Gul blitz - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003169-perfect-font-fallbacks" title="Perfekte nedfald i skrifttypen - CSS-tricks" rel="bookmark">Perfekte nedfald i skrifttypen - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003170-shape-morphing" title="Form Morphing - CSS-tricks" rel="bookmark">Form Morphing - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003171-scroll-indicator" title="Rulleindikator - CSS-tricks" rel="bookmark">Rulleindikator - CSS-tricks</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Top Artikler</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003094-adjacent-sibling" title="Tilstødende søskende - CSS-tricks" rel="bookmark">Tilstødende søskende - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003095-active" title=": aktiv - CSS-tricks" rel="bookmark">: aktiv - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003096-any-link" title=": ethvert link - CSS-tricks" rel="bookmark">: ethvert link - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003097-z-index" title="Z-indeks - CSS-tricks" rel="bookmark">Z-indeks - CSS-tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003098-before-after" title=":: før / :: efter - CSS-tricks" rel="bookmark">:: før / :: efter - CSS-tricks</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright da.css-code.org, 2025 September | <a href="https://da.css-code.org/about-site" title="Om webstedet">Om webstedet</a> | <a href="https://da.css-code.org/contacts" title="Kontakter">Kontakter</a> | <a href="https://da.css-code.org/privacy-policy" title="Fortrolighedspolitik">Fortrolighedspolitik</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>