Sobes.tech
Junior

Kuidas te leiate elementide lokalisaatorid veebilehel?

sobes.tech AI

Vastus AI-lt

Elementide lokaliseerimiseks kasutan järgmisi lähenemisviise, alustades kõige usaldusväärsematest:

  1. ID järgi: Unikaalne elemendi identifikaator. Kõige stabiilsem variant, kui ID on määranud arendaja.

    # Elemendi otsimine ID järgi
    driver.find_element(By.ID, "element_id")
    
  2. Klassi (klassinime) järgi: Otsing class atribuudi väärtuse järgi. Võib olla vähem unikaalne kui ID.

    # Elemendi otsimine klassinime järgi
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. CSS-selektori järgi: Võimas tööriist, mis võimaldab leida elemente erinevate atribuutide, DOM-i struktuuri, pseudo-klaside jms alusel. Paindlik, võrreldav XPath-iga, kuid süntaks on sageli lihtsam ja täitmine kiirem.

    # Elemendi otsimine CSS-selektoriga
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. XPath-i järgi: Päringukeel XML-dokumentide (sh HTML) sõlmede otsimiseks. Võimaldab leida elemente nende asukoha, atribuutide, tekstide alusel DOM-is. Hea elementide otsimiseks, millel puuduvad unikaalsed ID/klassid või navigeerimiseks vanem- või alamelementide vahel. Võib olla vähem tõhus kui CSS-selektorid.

    # XPath-i kasutamine elementide otsimiseks
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Taga nime (Tag Name): Kõigi elementide otsimine kindla taga järgi. Harva kasutatakse konkreetse elemendi leidmiseks, sagedamini nimekirja saamiseks.

    # Kõigi div-elementide otsimine
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Lingiteksti järgi (Link Text/Partial Link Text): Eriti <a> elementidele.

    # Lingile otsimine täpse tekstiga
    driver.find_element(By.LINK_TEXT, "Kliki siia")
    
    # Lingile otsimine osalise tekstiga
    driver.find_element(By.PARTIAL_LINK_TEXT, "Kliki")
    
  7. Nime (Name) järgi: name atribuudi väärtuse järgi. Sageli kasutatakse vormiväljade jaoks.

    # Elementi otsimine `name` atribuudi järgi
    driver.find_element(By.NAME, "username")
    

Lokaliseerija valimisel järgin järgmisi põhimõtteid:

  • Unikaalsus: Lokaliseerijal peab olema unikaalne identifikaator.
  • Stabiilsus: Valin selliseid, mis on kõige vähem tõenäoline, et muutuvad lehe disaini või struktuuri muutmisel (eelistan ID ja atribuute, mitte positsioonilist XPath-i).
  • Loetavus ja hooldatavus: Lokaliseerija peab olema arusaadav.

CSS-selektorite või XPath-i kasutamisel püüan vältida sügava või absoluutse DOM-i struktuuri sõltuvust, otsin elemente nende lähima unikaalse vanema või nende enda atribuudi alusel. Kasutan brauseri DevTools-i DOM-i inspektsiooni ja lokaliseerijate silumist.