Meteen naar de inhoud

Schermafbeeldingen maken met Selenium

Selenium is een populaire browserautomatiseringstool die wordt gebruikt voor webscrapen, testen en meer. Een handige functie die het biedt, is de mogelijkheid om schermafbeeldingen van webpagina's te maken tijdens automatisering. Hier volgt een diepgaande blik op hoe u schermafbeeldingen op volledige pagina- en elementniveau kunt maken met Selenium in Python.

Inleiding tot het maken van screenshots met Selenium

De belangrijkste redenen waarom u mogelijk schermafbeeldingen wilt maken met Selenium zijn:

  • Kopieën opslaan van webpagina's die u hebt geschraapt of waarmee u interactie hebt gehad voor foutopsporing of records
  • Vastleggen van dynamische inhoud zoals datum-/tijdinformatie of advertenties voor latere analyse
  • Lay-outproblemen in browsers en apparaten controleren
  • Documenteren van workflowstappen en statussen in geautomatiseerde tests
  • Schermafbeeldingen maken van captcha-afbeeldingen om deze geautomatiseerd op te lossen

Selenium ondersteunt het maken van schermafbeeldingen van zowel volledige webpagina's als specifieke elementen op een pagina. Dit biedt veel flexibiliteit om precies vast te leggen wat u nodig heeft.

Selenium instellen en een browser openen

Om aan de slag te gaan, moeten we eerst Selenium importeren en een WebDriver-object instantiëren om de browser te besturen. Het onderstaande voorbeeld toont het openen van Chrome:

from selenium import webdriver

driver = webdriver.Chrome()

Andere browsers zoals Firefox en Edge werken op dezelfde manier. Nu het driverobject klaar is, kunnen we nu naar een webpagina navigeren om een ​​screenshot te maken:

driver.get("https://example.com")

Schermafbeeldingen van een volledige pagina maken

De eenvoudigste manier om een ​​screenshot te maken van de volledige inhoud van het browservenster is met behulp van save_screenshot().

Geef het een bestandspad door om de afbeelding rechtstreeks op schijf op te slaan:

driver.save_screenshot(‘example_screenshot.png‘)

Als alternatief kunt u de schermafbeelding verkrijgen als PNG-bytes in het geheugen of als een met Base64 gecodeerde tekenreeks:

screenshot_png = driver.get_screenshot_as_png()
screenshot_b64 = driver.get_screenshot_as_base64() 

Hierdoor kan de schermafbeelding in een database worden opgeslagen of bijvoorbeeld via HTTP worden verzonden.

Element-screenshots maken

Om schermafbeeldingen te maken van een specifiek element op de pagina in plaats van het volledige scherm, moet je eerst het element vinden met behulp van een locator zoals CSS-selector of XPath:

element = driver.find_element(By.ID, ‘main-content‘)

Bel dan .screenshot() op het WebElement om alleen dat deel van de pagina vast te leggen:

element_shot = element.screenshot(‘element.png‘)

Net als bij volledige schermafbeeldingen kunt u ook de bytes of de Base64-reeks verkrijgen.

Tips voor betrouwbare screenshots

Hier zijn enkele tips voor het maken van nauwkeurige, nuttige schermafbeeldingen met Selenium:

  • Wacht tot de pagina's volledig zijn geladen voordat u schermafbeeldingen maakt om te voorkomen dat ze midden in het laden worden vastgelegd.
  • Blader indien nodig door de elementen voordat u schermafbeeldingen maakt.
  • Let op advertenties en dynamische inhoud die tussen opnames verandert.
  • Maak mobiele schermafbeeldingen door het formaat van het browservenster aan te passen of door mobiele emulatie te gebruiken.
  • Headless browsers zoals PhantomJS kunnen screenshots maken, maar missen mogelijk bepaalde inhoud.

Gebruik cases voor Selenium-screenshots

Enkele voorbeelden van hoe u Selenium-screenshots kunt gebruiken in uw webscraping- en automatiseringsprojecten:

  • Foutopsporing en loggen – vergelijk voor en na schermafbeeldingen om wijzigingen te zien.
  • Vastleggen van gegenereerde of tijdgevoelige inhoud zoals dashboards.
  • Geautomatiseerde visuele regressietests in verschillende browserversies.
  • Documenteren van de workflow en status tijdens testruns.
  • Screenshots maken van captcha's om in te voeren in een oplossingsservice.
  • Archivering van geschraapte paginagegevens samen met schermafbeeldingen.

Samenvatting en volgende stappen

De stappen om screenshots te maken met Selenium in Python zijn:

  1. Importeer Selenium en maak een WebDriver
  2. Navigeer naar de doelpagina
  3. Bel save_screenshot() om de volledige pagina vast te leggen
  4. Of zoek een element en bel screenshot() om alleen dat element vast te leggen
  5. Pas indien nodig aan voor dynamische pagina's en mobiel

Ik hoop dat deze handleiding je een goede basis geeft voor het maken van schermafbeeldingen in je eigen Selenium-project! De mogelijkheden zijn eindeloos.

Doe mee aan het gesprek

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *