Sobes.tech
Junior

Cum veți găsi locatorii pentru elementele de pe pagina web?

sobes.tech AI

Răspuns de la AI

Pentru a localiza elementele, folosesc următoarele abordări, începând cu cele mai fiabile:

  1. După ID: Identificatorul unic al elementului. Opțiunea cea mai stabilă dacă ID-ul este furnizat de dezvoltatori.

    # Căutare element după ID
    driver.find_element(By.ID, "element_id")
    
  2. După clasă (numele clasei): Căutare după valoarea atributului class. Poate fi mai puțin unic decât ID.

    # Căutare element după numele clasei
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. După selector CSS: Instrument puternic care permite găsirea elementelor după diferiți atribute, structură DOM, pseudo-clase etc. Flexibilitatea este comparabilă cu XPath, dar sintaxa este adesea mai simplă și execuția mai rapidă.

    # Căutare element după selector CSS
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. După XPath: Limbaj de interogare pentru găsirea nodurilor în documente XML (inclusiv HTML). Permite localizarea elementelor după poziția lor în arborele DOM, atribute, texte. Este util pentru elemente fără ID/clase unice sau pentru navigare între elemente părinte/copil. Poate fi mai puțin performant decât selectorii CSS.

    # Căutare element după XPath
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. După numele tag-ului (Tag Name): Caută toate elementele cu un anumit tag. Rar folosit pentru localizarea unui element specific, mai mult pentru obținerea unei liste.

    # Căutare toate elementele div
    driver.find_elements(By.TAG_NAME, "div")
    
  6. După textul link-ului (Link Text/Partial Link Text): Special pentru elemente <a> (linkuri).

    # Căutare link după textul exact
    driver.find_element(By.LINK_TEXT, "Click aici")
    
    # Căutare link după text parțial
    driver.find_element(By.PARTIAL_LINK_TEXT, "Click")
    
  7. După nume (Name): Caută după valoarea atributului name. Frecvent utilizat pentru câmpurile de formular.

    # Căutare element după atributul name
    driver.find_element(By.NAME, "nume_utilizator")
    

Când aleg un locator, urmez următoarele principii:

  • Unicitate: Locatorul trebuie să identifice în mod unic elementul dorit.
  • Stabilitate: Prefer locatorii care sunt mai puțin susceptibili la schimbări în design sau structură (prefer ID și atribute, nu XPath pozițional).
  • ** lizibilitate și întreținere:** Locatorul trebuie să fie ușor de înțeles.

Când folosesc selectori CSS sau XPath, încerc să evit dependențele de structuri DOM adânci sau absolute, preferând să caut elemente în raport cu cel mai apropiat părinte unic sau după atributele lor proprii. Folosesc instrumentele de inspecție DOM ale browserului pentru depanare și validare a locatorilor.