Selenium IDE gebruiken met scripts & Commando's (bevestigen, verifiëren)

Inhoudsopgave:

Anonim

We zullen de website van Mercury Tours gebruiken als onze te testen webapplicatie. Het is een online vluchtreserveringssysteem dat alle elementen bevat die we nodig hebben voor deze tutorial. De URL is http://demo.guru99.com/test/newtours/, en dit zal onze basis-URL zijn.

Maak een script door op te nemen

Laten we nu ons eerste testscript maken in Selenium IDE met behulp van de meest gebruikelijke methode - door op te nemen. Daarna zullen we ons script uitvoeren met behulp van de afspeelfunctie.

Stap 1

  • Start Firefox en Selenium IDE.
  • Typ de waarde voor onze basis-URL: http://demo.guru99.com/test/newtours/.
  • Schakel de opnameknop in (als deze nog niet standaard is ingeschakeld).
Stap 2

Navigeer in Firefox naar http://demo.guru99.com/test/newtours/. Firefox zou u naar de pagina moeten leiden die lijkt op de pagina die hieronder wordt weergegeven.

Stap 3
  • Klik met de rechtermuisknop op een lege ruimte op de pagina, zoals op het Mercury Tours-logo in de linkerbovenhoek. Dit zal het Selenium IDE-contextmenu openen. Opmerking: klik niet op objecten of afbeeldingen met hyperlinks
  • Selecteer de optie "Beschikbare opdrachten weergeven".
  • Selecteer vervolgens "assertTitle exact: Welcome: Mercury Tours." Dit is een commando dat ervoor zorgt dat de paginatitel correct is.
Stap 4
  • Typ in het tekstvak "Gebruikersnaam" van Mercury Tours een ongeldige gebruikersnaam, "invalidUNN".
  • Typ in het tekstvak "Wachtwoord" een ongeldig wachtwoord, "invalidPWD".
Stap 5
  • Klik op de knop "Aanmelden". Firefox zou u naar deze pagina moeten leiden.
Stap 6

Schakel de opnameknop uit om de opname te stoppen. Uw script zou er nu moeten uitzien zoals hieronder weergegeven.

Stap 7

Nu we klaar zijn met ons testscript, zullen we het opslaan in een testcase. Selecteer in het menu Bestand de optie "Testcase opslaan". U kunt ook gewoon op Ctrl + S drukken.

Stap 8
  • Kies de gewenste locatie en noem de testcase "Invalid_login".
  • Klik op de knop "Opslaan".
Stap 9.

Merk op dat het bestand is opgeslagen als HTML.

Stap 10.

Ga terug naar Selenium IDE en klik op de afspeelknop om het hele script uit te voeren. Selenium IDE zou alles feilloos moeten kunnen repliceren.

Inleiding tot Selenium-opdrachten - Selenese

  • Selenese commando's kunnen maximaal twee parameters hebben: doel en waarde.
  • Parameters zijn niet altijd vereist. Het hangt ervan af hoeveel de opdracht nodig heeft.

3 soorten opdrachten

Acties

Dit zijn opdrachten die rechtstreeks communiceren met pagina-elementen.

Voorbeeld: het "klik" -commando is een actie omdat u rechtstreeks interactie heeft met het element waarop u klikt.

Het "type" -commando is ook een actie omdat u waarden in een tekstvak plaatst, en het tekstvak toont ze u in ruil. Er is een wederzijdse interactie tussen u en het tekstvak.

Accessors

Het zijn opdrachten waarmee u waarden in een variabele kunt opslaan.

Voorbeeld: het "storeTitle" -commando is een accessor omdat het alleen de paginatitel "leest" en deze in een variabele opslaat. Het heeft geen interactie met enig element op de pagina.

Beweringen

Het zijn commando's die controleren of aan een bepaalde voorwaarde is voldaan.

3 soorten beweringen

  • Beweren . Als een "assert" -commando mislukt, wordt de test onmiddellijk gestopt.
  • Verifieer . Wanneer een "verifieer" -opdracht mislukt, registreert Selenium IDE deze fout en gaat verder met de testuitvoering.
  • Wacht op . Alvorens verder te gaan met het volgende commando, zullen "waitFor" -commando's eerst wachten tot een bepaalde voorwaarde vervuld wordt.
    • Als de toestand binnen de wachttijd waar wordt, gaat de stap voorbij.
    • Als de voorwaarde niet waar wordt, mislukt de stap. De fout wordt gelogd en de uitvoering van de test gaat verder met de volgende opdracht.
    • Standaard is de time-outwaarde ingesteld op 30 seconden. U kunt dit wijzigen in het dialoogvenster Selenium IDE-opties op het tabblad Algemeen.

Beweren versus verifiëren

Gemeenschappelijke opdrachten

Opdracht Aantal parameters Omschrijving
Open 0 - 2

Opent een pagina met een URL.

klik / clickAndWait 1

Klikt op een bepaald element.

type / typeKeys 2

Typt een reeks tekens.

verifiërenTitle / assertTitle 1

Vergelijkt de werkelijke paginatitel met een verwachte waarde.

verifieerTextPresent 1

Controleert of een bepaalde tekst op de pagina wordt gevonden.

verifieerElementPresent 1

Controleert de aanwezigheid van een bepaald element.

verifieerTable 2

Vergelijkt de inhoud van een tabel met verwachte waarden.

waitForPageToLoad 1

Onderbreekt de uitvoering totdat de pagina volledig is geladen.

waitForElementPresent 1

Onderbreekt de uitvoering totdat het opgegeven element aanwezig wordt.

Maak handmatig een script met Firebug

Nu zullen we dezelfde testcase handmatig opnieuw creëren door de commando's in te typen. Deze keer zullen we Firebug moeten gebruiken.

Stap 1
  • Open Firefox en Selenium IDE.
  • Typ de basis-URL (http://demo.guru99.com/test/newtours/).
  • De opnameknop moet UIT staan.
Stap 2: Klik op de bovenste lege regel in de Editor.

Typ "open" in het tekstvak Command en druk op Enter.

Stap 3
  • Navigeer Firefox naar onze basis-URL en activeer Firebug
  • Selecteer in het paneel Selenium IDE Editor de tweede regel (de regel onder het "open" -commando) en maak het tweede commando door "assertTitle" in het Commando-veld te typen.
  • Voel je vrij om de functie voor automatisch aanvullen te gebruiken.
Stap 4
  • Vouw in Firebug de tag uit om de tag weer te geven.</li> <li>Klik op de waarde van de <title> -tag (die "Welcome: Mercury Tours" is) en plak deze in het Target-veld in de Editor.</li> </ul> </td> </tr> <tr> <td><strong>Stap 5</strong> <ul> <li>Om de derde opdracht te maken, klikt u op de derde lege regel in de Editor en toetst u "type" in het tekstvak Opdracht in.</li> <li>Klik in Firebug op de knop "Inspecteren".</li> </ul> </td> </tr> <tr> <td>Klik op het tekstvak Gebruikersnaam. Merk op dat Firebug u automatisch de HTML-code voor dat element laat zien.</td> </tr> <tr> <td><strong>Stap 6</strong> <p>Merk op dat het tekstvak Gebruikersnaam geen ID heeft, maar het kenmerk NAME. We zullen daarom zijn NAAM gebruiken als locator. Kopieer de NAME-waarde en plak deze in het Target-veld in Selenium IDE.</p> <p>Plaats, nog steeds in het tekstvak Doel, voorvoegsel "gebruikersnaam" met "naam =", wat aangeeft dat Selenium IDE een element moet targeten waarvan het kenmerk NAME "gebruikersnaam" is.</p> <p>Typ "invalidUN" in het tekstvak Waarde van Selenium IDE. Uw testscript zou er nu uit moeten zien als de onderstaande afbeelding. We zijn klaar met het derde commando. Opmerking: in plaats van invalidUN mag u een andere tekstreeks invoeren. Maar Selenium IDE is hoofdlettergevoelig en u typt waarden / attributen precies zoals in de applicatie.</p> </td> </tr> <tr> <td><strong>Stap 7</strong> <ul> <li>Om de vierde opdracht te maken, toetst u "type" in het tekstvak Opdracht in.</li> <li>Gebruik opnieuw Firebug's "Inspect" -knop om de locator voor het "Password" -tekstvak te krijgen.</li> </ul> <ul> <li> <p>Plak het NAME-attribuut ("wachtwoord") in het Doel-veld en voeg "name =" eraan toe</p> </li> <li> <p>Typ "invalidPW" in het veld Waarde in Selenium IDE. Uw testscript zou er nu uit moeten zien als de onderstaande afbeelding.</p> </li> </ul> </td> </tr> <tr> <td><strong>Stap 8</strong> <ul> <li>Typ voor het vijfde commando "clickAndWait" in het Commando-tekstvak in Selenium IDE.</li> <li>Gebruik Firebug's "Inspect" -knop om de locator voor de "Sign In" -knop te krijgen.</li> </ul> <ul> <li>Plak de waarde van het NAME-attribuut ("login") in het Target-tekstvak en voeg "name =" eraan toe.</li> <li>Uw testscript zou er nu uit moeten zien als de onderstaande afbeelding.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Stap 9:</strong> Sla de testcase op dezelfde manier op als in de vorige sectie.</p> <a id="menu-6"></a> <h2>Met behulp van de zoekknop</h2> <p><strong>De knop Zoeken in Selenium IDE wordt gebruikt om te controleren of wat we in het tekstvak Doel hadden gezet inderdaad het juiste UI-element is.</strong></p> <p>Laten we de Invalid_login-testcase gebruiken die we in de vorige secties hebben gemaakt. Klik op een commando met een doelinvoer, bijvoorbeeld het derde commando.</p> <p>Klik op de knop Zoeken. Merk op dat het tekstvak Gebruikersnaam op de Mercury Tours-pagina even wordt gemarkeerd.</p> <p>Dit geeft aan dat Selenium IDE het verwachte element correct kon detecteren en openen. Als de knop Zoeken een ander element of helemaal geen element heeft gemarkeerd, moet er iets mis zijn met uw script.</p> <a id="menu-7"></a> <h2>Voer het commando uit</h2> <p><strong>Hiermee kunt u een enkele opdracht uitvoeren zonder de hele testcase uit te voeren</strong> . Klik gewoon op de regel die u wilt uitvoeren en klik vervolgens op "Acties> Voer dit commando uit" in de menubalk of druk gewoon op "X" op uw toetsenbord.</p> <p><strong>Stap 1.</strong> Zorg ervoor dat uw browser op de startpagina van Mercury Tours staat. Klik op het commando dat u wilt uitvoeren. Klik in dit voorbeeld op de regel "type | gebruikersnaam | invalidUN".</p> <p><strong>Stap 2.</strong> Druk op "X" op uw toetsenbord.</p> <p><strong>Stap 3.</strong> Merk op dat het tekstvak voor gebruikersnaam wordt gevuld met de tekst "invalidUN"</p> <p><strong>Het op deze manier uitvoeren van opdrachten is sterk afhankelijk van de pagina die Firefox momenteel weergeeft</strong> . Dit betekent dat als u het bovenstaande voorbeeld probeert met de Google-startpagina weergegeven in plaats van Mercury Tours ', uw stap zal mislukken omdat er geen tekstvak met een "gebruikersnaam" -attribuut op de startpagina van Google staat.</p> <a id="menu-8"></a> <h2>Startpunt</h2> <p><strong>Een startpunt is een indicator die Selenium IDE vertelt welke regels de uitvoering zal starten</strong> . <strong>De sneltoets is "S".</strong></p> <p>In het bovenstaande voorbeeld begint het afspelen op de derde regel (typ | wachtwoord | invalidPW). <strong>U kunt slechts één startpunt hebben in een enkel testscript.</strong></p> <p>Het startpunt is vergelijkbaar met Commando uitvoeren in die zin dat ze afhankelijk zijn van de momenteel weergegeven pagina. Het startpunt mislukt als u zich op de verkeerde pagina bevindt.</p> <a id="menu-9"></a> <h2>Breekpunten</h2> <p>Breekpunten zijn indicatoren die Selenium IDE vertellen waar de test automatisch moet worden onderbroken. <strong>De sneltoets is "B".</strong></p> <p>De gele markering betekent dat de huidige stap in behandeling is. Dit bewijst dat Selenium IDE de uitvoering bij die stap heeft onderbroken. <strong>U kunt in één testcase meerdere breekpunten hebben.</strong></p> <a id="menu-10"></a> <h2>Stap</h2> <p>Hiermee kunt u opeenvolgende opdrachten een voor een uitvoeren na het pauzeren van de testcase. Laten we het scenario in de vorige sectie "Breekpunten" gebruiken.</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Voordat u op "Stap" klikt.</strong></p> <p>De testcase pauzeert bij de regel "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Nadat u op "Stap" hebt geklikt.</strong></p> <p>De regel "clickAndWait | login" wordt uitgevoerd en pauzeert naar de volgende opdracht (verifyTitle | Sign-on: Mercury Tours).</p> <p>Merk op dat de volgende regel wordt gepauzeerd, ook al is daar geen onderbrekingspunt. Dit is het belangrijkste doel van de Step-functie - het voert de opeenvolgende opdrachten een voor een uit om u meer tijd te geven om het resultaat na elke stap te inspecteren.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Belangrijke zaken om op te letten bij het gebruik van andere indelingen in de bronweergave</h2> <p><strong>Selenium IDE werkt alleen goed met HTML - andere formaten bevinden zich nog in de experimentele modus</strong> . Het is <strong>NIET aan</strong> te <strong>raden</strong> om tests te maken of te bewerken met andere formaten in Source View, omdat er nog veel werk nodig is om het stabiel te maken. Hieronder staan ​​de bekende bugs vanaf versie 1.9.1.</p> <ul> <li>U kunt niet afspelen of terugschakelen naar de tabelweergave, tenzij u terugkeert naar HTML.</li> <li>De enige manier om commando's veilig aan de broncode toe te voegen, is door ze op te nemen.</li> <li>Wanneer u de broncode handmatig wijzigt, gaat alles verloren wanneer u naar een ander formaat overschakelt.</li> <li>Hoewel u uw testcase kunt opslaan in Source View, kan Selenium IDE deze niet openen.</li> </ul> <p><strong>De aanbevolen manier om Selenese-tests te converteren, is door de optie "Testcase exporteren als ..." onder het menu Bestand te gebruiken, en niet via de Bronweergave.</strong></p> <a id="menu-12"></a> <h2>Overzicht</h2> <ul> <li>Testscripts kunnen worden gemaakt door de opdrachten en parameters handmatig op te nemen of te typen.</li> <li>Bij het handmatig aanmaken van scripts wordt Firebug gebruikt om de locator op te halen.</li> <li>De knop Zoeken wordt gebruikt om te controleren of de opdracht toegang heeft tot het juiste element.</li> <li>Tabelweergave geeft een testscript in tabelvorm weer, terwijl Bronweergave het in HTML-indeling weergeeft.</li> <li>Het wijzigen van de bronweergave naar een niet-HTML-indeling is nog experimenteel.</li> <li>Gebruik de bronweergave niet om tests in andere indelingen te maken. Gebruik in plaats daarvan de exportfuncties.</li> <li>Parameters zijn niet altijd vereist. Het hangt af van het bevel.</li> <li>Er zijn drie soorten opdrachten:</li> <ul> <li>Acties - heeft directe interactie met pagina-elementen</li> <li>Accessors - "leest" een elementeigenschap en slaat deze op in een variabele</li> <li>Beweringen - vergelijkt een werkelijke waarde met een verwachte waarde</li> </ul> <li>Beweringen zijn er in drie soorten:</li> <ul> <li>Beweren - bij een mislukking worden de volgende stappen niet langer uitgevoerd</li> <li>Controleer - bij een fout worden de volgende stappen nog steeds uitgevoerd.</li> <li>WaitFor - gaat door als de opgegeven voorwaarde binnen de time-outperiode waar wordt; anders zal het mislukken</li> </ul> <li>De meest voorkomende commando's zijn:</li> <ul> <li>Open</li> <li>klik / clickAndWait</li> <li>type / typeKeys</li> <li>verifiërenTitle / assertTitle</li> <li>verifieerTextPresent</li> <li>verifieerElementPresent</li> <li>verifieerTable</li> <li>waitForPageToLoad</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">Populaire Berichten</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="/8225995-mis-development-process-with-sdlc-and-agile" title="MIS-ontwikkelingsproces met SDLC & Behendig" rel="bookmark"><img src="https://cdn.css-code.org/6132516/mis_development_process_with_sdlc_ampamp_agile.png.webp" loading="lazy" alt="MIS-ontwikkelingsproces met SDLC & Behendig" title="MIS-ontwikkelingsproces met SDLC & Behendig" 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="/8225995-mis-development-process-with-sdlc-and-agile" title="MIS-ontwikkelingsproces met SDLC & Behendig" rel="bookmark">MIS-ontwikkelingsproces met SDLC & Behendig 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="/8225996-ethical-and-security-issues-in-information-system" title="Ethisch & Beveiligingsproblemen in informatiesysteem" rel="bookmark"><img src="https://cdn.css-code.org/8272241/ethical_ampamp_security_issues_in_information_system.jpg.webp" loading="lazy" alt="Ethisch & Beveiligingsproblemen in informatiesysteem" title="Ethisch & Beveiligingsproblemen in informatiesysteem" 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="/8225996-ethical-and-security-issues-in-information-system" title="Ethisch & Beveiligingsproblemen in informatiesysteem" rel="bookmark">Ethisch & Beveiligingsproblemen in informatiesysteem 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="/8225998-basics-of-computer-networking-what-is-advantages-components-uses" title="Basisprincipes van computernetwerken: wat is, voordelen, componenten, gebruik" rel="bookmark"><img src="https://cdn.css-code.org/8503612/basics_of_computer_networking_what_is-_advantages-_components-_uses.png.webp" loading="lazy" alt="Basisprincipes van computernetwerken: wat is, voordelen, componenten, gebruik" title="Basisprincipes van computernetwerken: wat is, voordelen, componenten, gebruik" 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="/8225998-basics-of-computer-networking-what-is-advantages-components-uses" title="Basisprincipes van computernetwerken: wat is, voordelen, componenten, gebruik" rel="bookmark">Basisprincipes van computernetwerken: wat is, voordelen, componenten, gebruik 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Beste beoordelingen voor de maand</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="/8226417-data-warehouse-architecture-concepts-and-components" title="Datawarehouse-architectuur, concepten en componenten" rel="bookmark">Datawarehouse-architectuur, concepten en componenten</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="/8226418-etl-extract-transform-and-load-process-in-data-warehouse" title="ETL-proces (extraheren, transformeren en laden) in datawarehouse" rel="bookmark">ETL-proces (extraheren, transformeren en laden) in datawarehouse</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="/8226419-molap-multidimensional-olap-in-data-warehouse" title="MOLAP: Multidimensionale OLAP in Data Warehouse" rel="bookmark">MOLAP: Multidimensionale OLAP in Data Warehouse</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="/8226422-data-modelling-conceptual-logical-physical-data-model-types" title="Gegevensmodellering: conceptuele, logische, fysieke gegevensmodeltypen" rel="bookmark">Gegevensmodellering: conceptuele, logische, fysieke gegevensmodeltypen</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="/8226423-data-warehouse-vs-data-mart-know-the-difference" title="Datawarehouse versus datamart: ken het verschil" rel="bookmark">Datawarehouse versus datamart: ken het verschil</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="/8226424-star-and-snowflake-schema-in-data-warehouse-with-examples" title="Ster- en sneeuwvlokschema in datawarehouse met voorbeelden" rel="bookmark">Ster- en sneeuwvlokschema in datawarehouse met voorbeelden</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="/8226425-data-lake-vs-data-warehouse-whats-the-difference" title="Data Lake vs Data Warehouse: wat is het verschil?" rel="bookmark">Data Lake vs Data Warehouse: wat is het verschil?</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="/8226426-what-is-data-lake-its-architecture" title="Wat is Data Lake? Het is architectuur" rel="bookmark">Wat is Data Lake? Het is architectuur</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="/8226427-cassandra-tutorial-pdf-download-definitive-guide" title="Cassandra Tutorial PDF: Download de definitieve gids" rel="bookmark">Cassandra Tutorial PDF: Download de definitieve gids</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="/8226428-what-is-data-reconciliation-definition-process-tools" title="Wat is gegevensafstemming? Definitie, proces, tools" rel="bookmark">Wat is gegevensafstemming? Definitie, proces, tools</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="/8226429-difference-between-data-mining-and-data-warehouse" title="Verschil tussen datamining en datawarehouse" rel="bookmark">Verschil tussen datamining en datawarehouse</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="/8226430-information-vs-knowledge-key-differences" title="Informatie versus kennis: belangrijkste verschillen" rel="bookmark">Informatie versus kennis: belangrijkste verschillen</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="/8226431-25-best-etl-tools-in-2021-free-and-paid" title="25 BESTE ETL-tools in 2021 (gratis en betaald)" rel="bookmark">25 BESTE ETL-tools in 2021 (gratis en betaald)</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="/8226432-5-best-etl-automation-testing-tools-in-2021" title="5 beste testtools voor ETL-automatisering in 2021" rel="bookmark">5 beste testtools voor ETL-automatisering in 2021</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="/8226433-25-best-data-mining-tools-in-2021" title="25 BESTE dataminingtools in 2021" rel="bookmark">25 BESTE dataminingtools in 2021</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Top Artikelen</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="/8003064-text-orientation" title="Tekstoriëntatie - CSS-trucs" rel="bookmark"><img src="https://cdn.css-code.org/7851269/text-orientation_css-tricks.png.webp" loading="lazy" alt="Tekstoriëntatie - CSS-trucs" title="Tekstoriëntatie - CSS-trucs" 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="/8003064-text-orientation" title="Tekstoriëntatie - CSS-trucs" rel="bookmark">Tekstoriëntatie - CSS-trucs 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="/8003067-text-underline-position" title="Tekst-onderstrepen-positie - CSS-trucs" rel="bookmark"><img src="https://cdn.css-code.org/2907980/text-underline-position_css-tricks.png.webp" loading="lazy" alt="Tekst-onderstrepen-positie - CSS-trucs" title="Tekst-onderstrepen-positie - CSS-trucs" 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="/8003067-text-underline-position" title="Tekst-onderstrepen-positie - CSS-trucs" rel="bookmark">Tekst-onderstrepen-positie - CSS-trucs 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="/8003069-text-underline-offset" title="Tekst-onderstrepen-offset - CSS-trucs" rel="bookmark"><img src="https://cdn.css-code.org/6216902/text-underline-offset_css-tricks.png.webp" loading="lazy" alt="Tekst-onderstrepen-offset - CSS-trucs" title="Tekst-onderstrepen-offset - CSS-trucs" 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="/8003069-text-underline-offset" title="Tekst-onderstrepen-offset - CSS-trucs" rel="bookmark">Tekst-onderstrepen-offset - CSS-trucs 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">Populaire Berichten</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222616-severity-and-priority-in-testing-differences-and-example" title="Ernst & Prioriteit bij testen: verschillen & Voorbeeld" rel="bookmark">Ernst & Prioriteit bij testen: verschillen & Voorbeeld</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222617-difference-between-retesting-and-regression-testing" title="Verschil tussen hertesten en regressietesten" rel="bookmark">Verschil tussen hertesten en regressietesten</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222618-static-testing-vs-dynamic-testing-whats-the-difference" title="Statisch testen versus dynamisch testen: wat is het verschil?" rel="bookmark">Statisch testen versus dynamisch testen: wat is het verschil?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222619-quality-assurance-vs-quality-control-whats-the-difference" title="Kwaliteitsborging versus kwaliteitscontrole: wat is het verschil?" rel="bookmark">Kwaliteitsborging versus kwaliteitscontrole: wat is het verschil?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222620-difference-between-verification-and-validation-with-example" title="Verschil tussen verificatie en validatie met voorbeeld" rel="bookmark">Verschil tussen verificatie en validatie met voorbeeld</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Editor'S Choice</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003443-80-updating-local-content-by-running-the-sql" title="# 80: Lokale inhoud bijwerken door de SQL - uit te voeren CSS-trucs" rel="bookmark"># 80: Lokale inhoud bijwerken door de SQL - uit te voeren CSS-trucs</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003444-158-a-month-later-final-wrapup" title="# 158: A Month Later: Final Wrapup - CSS-trucs" rel="bookmark"># 158: A Month Later: Final Wrapup - CSS-trucs</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003445-85-blog-post-view-single-php-in-wordpress" title="# 85: Blogpostweergave (single.php) in WordPress - CSS-trucs" rel="bookmark"># 85: Blogpostweergave (single.php) in WordPress - CSS-trucs</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003447-84-moving-footer-into-wordpress" title="# 84: Footer verplaatsen naar WordPress - CSS-trucs" rel="bookmark"># 84: Footer verplaatsen naar WordPress - CSS-trucs</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003448-88-building-the-gallery-bar" title="# 88: De galerijbar bouwen - CSS-trucs" rel="bookmark"># 88: De galerijbar bouwen - CSS-trucs</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Top Artikelen</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222454-23-best-wysiwyg-web-website-builder-in-2021" title="23 Beste WYSIWYG-web (website) bouwer in 2021" rel="bookmark">23 Beste WYSIWYG-web (website) bouwer in 2021</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222455-15-best-minecraft-hosting-cheapest-options-in-2021" title="15 BESTE Minecraft-hosting (goedkoopste opties in 2021)" rel="bookmark">15 BESTE Minecraft-hosting (goedkoopste opties in 2021)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222457-which-sap-module-is-in-demand-career-and-future-scope" title="Welke SAP-module is er gevraagd? Carrière & Toekomstige reikwijdte" rel="bookmark">Welke SAP-module is er gevraagd? Carrière & Toekomstige reikwijdte</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222458-software-testing-as-a-career-path-tester-skills-salary-and-growth" title="Softwaretests als een carrièrepad: testervaardigheden, salaris & Groei" rel="bookmark">Softwaretests als een carrièrepad: testervaardigheden, salaris & Groei</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8222459-quiz" title="Quiz" rel="bookmark">Quiz</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright nl.css-code.org, 2025 Januari- | <a href="https://nl.css-code.org/about-site" title="Over site">Over site</a> | <a href="https://nl.css-code.org/contacts" title="Contacten">Contacten</a> | <a href="https://nl.css-code.org/privacy-policy" title="Privacybeleid">Privacybeleid</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>