Sobes.tech
Junior

Jak budete hledat lokalizátory pro prvky na webové stránce?

sobes.tech AI

Odpověď od AI

Pro lokalizaci prvků používám následující přístupy, začínaje nejspolehlivějšími:

  1. Podle ID: Unikátní identifikátor prvku. Nejstabilnější varianta, pokud je ID zadáno vývojáři.

    # Vyhledání prvku podle ID
    driver.find_element(By.ID, "element_id")
    
  2. Podle třídy (název třídy): Vyhledávání podle hodnoty atributu class. Může být méně unikátní než ID.

    # Vyhledání prvku podle názvu třídy
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. Podle CSS selektoru: Výkonný nástroj umožňující najít prvky podle různých atributů, struktury DOM, pseudo-tříd atd. Flexibilita srovnatelná s XPath, ale syntaxe je často jednodušší a výkon rychlejší.

    # Vyhledání prvku podle CSS selektoru
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. Podle XPath: Jazyk dotazů pro hledání uzlů v XML dokumentu (včetně HTML). Umožňuje najít prvky podle jejich umístění v DOM stromu, atributů, textů. Dobré pro hledání prvků bez unikátních ID/tříd nebo pro navigaci podle rodičovských/dceřiných prvků. Může být méně výkonné než CSS selektory.

    # Vyhledání prvku podle XPath
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Podle názvu tagu (Tag Name): Vyhledání všech prvků s určitým tagem. Zřídka používáno pro lokalizaci konkrétního prvku, spíše pro získání seznamu.

    # Vyhledání všech div prvků
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Podle textu odkazu (Link Text/Partial Link Text): Speciálně pro prvky <a> (odkazy).

    # Vyhledání odkazu podle přesného textu
    driver.find_element(By.LINK_TEXT, "Klikněte sem")
    
    # Vyhledání odkazu podle částečného textu
    driver.find_element(By.PARTIAL_LINK_TEXT, "Klikněte")
    
  7. Podle jména (Name): Vyhledání podle hodnoty atributu name. Často používané pro pole formulářů.

    # Vyhledání prvku podle atributu name
    driver.find_element(By.NAME, "username")
    

Při výběru lokalizátoru se řídím následujícími principy:

  • Unikátnost: Lokalizátor by měl jednoznačně identifikovat požadovaný prvek.
  • Stabilita: Vyberu lokalizátory, které je nejméně pravděpodobné, že se změní při změnách v designu nebo struktuře stránky (preferuji ID a atributy před pozičním XPath).
  • Čitelnost a udržovatelnost: Lokalizátor by měl být srozumitelný.

Při použití CSS selektorů nebo XPath se snažím vyhýbat závislostem na hlubokém nebo absolutním vnoření ve struktuře DOM, raději hledám prvky vzhledem k nejbližšímu unikátnímu rodiči nebo podle jejich vlastních atributů. Používám DevTools pro inspekci DOM a ladění lokalizátorů.