Sobes.tech
Junior

Koji lokalizatori postoje u Seleniumu?

sobes.tech АИ

Одговор од АИ

Lokatori u Selenium-u su mehanizmi za pronalaženje web elemenata na stranici. Glavne vrste lokatora:

  • ID: Omogućava pronalaženje elementa po njegovom atributu id. Najbrži i najpouzdaniji način, ako je ID jedinstven i stabilan.
  • Name: Omogućava pronalaženje elementa po atributu name. Manje pouzdan od ID, jer name nije uvek jedinstven.
  • Class Name: Omogućava pronalaženje elemenata po atributu class. Vraća listu elemenata, jer više elemenata može imati istu klasu.
  • Tag Name: Omogućava pronalaženje elemenata po imenu HTML taga (npr. div, a, input). Vraća listu elemenata.
  • Link Text: Omogućava pronalaženje <a> (link) elementa po tačnom tekstu linka.
  • Partial Link Text: Omogućava pronalaženje <a> (link) elementa po delimičnoj podudarnosti teksta linka.
  • CSS Selector: Moćan i fleksibilan način za pronalaženje elemenata koristeći sintaksu CSS selektora. Omogućava pretraživanje po kombinaciji atributa, tagova, klasa, hijerarhije i stanja.
  • XPath: Najmoćniji i najfleksibilniji način za pronalaženje elemenata, zasnovan na navigaciji kroz strukturu XML/HTML dokumenta. Omogućava pravljenje složenih putanja do elemenata, pretraživanje po atributima, sadržaju i položaju.

Primeri upotrebe:

# 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']")

Izbor lokatora zavisi od stabilnosti web elementa i strukture stranice. Preporučuje se korišćenje ID, CSS Selector ili XPath kada su pravilno konstruisani.