Sobes.tech
Junior

Welke locators zijn er in Selenium?

sobes.tech AI

Antwoord van AI

Locators in Selenium zijn mechanismen om web-elementen op een pagina te vinden. De belangrijkste typen locators:

  • ID: Hiermee kun je een element vinden op basis van zijn id attribuut. De snelste en meest betrouwbare methode, als de ID uniek en stabiel is.
  • Name: Hiermee kun je een element vinden op basis van zijn name attribuut. Minder betrouwbaar dan ID, omdat name niet altijd uniek is.
  • Class Name: Hiermee kun je elementen vinden op basis van hun class attribuut. Geeft een lijst van elementen terug, omdat meerdere elementen dezelfde klasse kunnen hebben.
  • Tag Name: Hiermee kun je elementen vinden op basis van de naam van de HTML-tag (bijvoorbeeld div, a, input). Geeft een lijst van elementen terug.
  • Link Text: Hiermee kun je een <a> (link) element vinden op basis van de exacte linktekst.
  • Partial Link Text: Hiermee kun je een <a> (link) element vinden op basis van een gedeeltelijke overeenkomst van de linktekst.
  • CSS Selector: Een krachtige en flexibele manier om elementen te zoeken met behulp van CSS-selector syntax. Hiermee kun je zoeken op basis van combinaties van attributen, tags, klassen, hiërarchie en toestanden.
  • XPath: De krachtigste en meest flexibele manier om elementen te zoeken, gebaseerd op navigatie door de structuur van het XML/HTML-document. Hiermee kun je complexe paden naar elementen bouwen, zoeken op basis van attributen, inhoud en positie.

Voorbeelden van gebruik:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

De keuze van de locator hangt af van de stabiliteit van het web-element en de structuur van de pagina. Het wordt aanbevolen om ID, CSS Selector of XPath te gebruiken wanneer deze correct zijn opgebouwd.