Sobes.tech
Junior

Hoe gaat u de locators voor de elementen op de webpagina vinden?

sobes.tech AI

Antwoord van AI

Om elementen te lokaliseren, gebruik ik de volgende benaderingen, te beginnen met de meest betrouwbare:

  1. Op ID: Unieke identificator van het element. De meest stabiele optie als ID door ontwikkelaars is gegeven.

    # Element zoeken op ID
    driver.find_element(By.ID, "element_id")
    
  2. Op klasse (klassenaam): Zoeken op de waarde van het class attribuut. Kan minder uniek zijn dan ID.

    # Element zoeken op klassenaam
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. Op CSS-selector: Krachtig hulpmiddel dat het mogelijk maakt om elementen te vinden via verschillende attributen, DOM-structuur, pseudo-klassen, enz. Flexibiliteit vergelijkbaar met XPath, maar de syntax is vaak eenvoudiger en de uitvoering sneller.

    # Element zoeken op CSS-selector
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. Op XPath: Taal voor het zoeken naar knooppunten in XML-documenten (inclusief HTML). Maakt het mogelijk om elementen te vinden op basis van hun positie in de DOM, attributen, teksten. Handig voor elementen zonder unieke ID/klassen of voor navigatie tussen ouder- en kindelementen. Kan minder efficiënt zijn dan CSS-selectors.

    # Element zoeken op XPath
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Op tagnaam (Tag Name): Zoekt alle elementen met een bepaalde tag. Wordt zelden gebruikt voor het lokaliseren van een specifiek element, meer voor het verkrijgen van een lijst.

    # Alle div-elementen zoeken
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Op linktekst (Link Text/Partial Link Text): Speciaal voor <a> (links).

    # Link zoeken op exacte tekst
    driver.find_element(By.LINK_TEXT, "Klik hier")
    
    # Link zoeken op gedeeltelijke tekst
    driver.find_element(By.PARTIAL_LINK_TEXT, "Klik")
    
  7. Op naam (Name): Zoekt op de waarde van het name attribuut. Vaak gebruikt voor formulier velden.

    # Element zoeken op attribuut name
    driver.find_element(By.NAME, "gebruikersnaam")
    

Bij het kiezen van een locator houd ik rekening met de volgende principes:

  • Uniekheid: De locator moet het gewenste element uniek identificeren.
  • Stabiliteit: Ik geef de voorkeur aan locators die minder snel veranderen bij wijzigingen in het ontwerp of de structuur van de pagina (voorkeur voor ID en attributen, niet voor positionele XPath).
  • Leesbaarheid en onderhoudbaarheid: De locator moet begrijpelijk zijn.

Bij het gebruik van CSS-selectors of XPath probeer ik afhankelijkheden van diepe of absolute DOM-structuren te vermijden, en zoek ik elementen relatief ten opzichte van de dichtstbijzijnde unieke ouder of via hun eigen attributen. Ik gebruik de DOM-inspectietools van de browser om locators te debuggen en te valideren.