Sobes.tech
Junior

Hogyan fogja megtalálni az elemek lokátorait a weboldalon?

sobes.tech MI

Válasz az MI-től

Az elemek helyének meghatározásához a következő megközelítéseket használom, kezdve a legmegbízhatóbbakkal:

  1. ID szerint: Az elem egyedi azonosítója. Ez a legstabilabb lehetőség, ha az ID-t a fejlesztők adták meg.

    # Elem keresése ID szerint
    driver.find_element(By.ID, "element_id")
    
  2. Osztály szerint (osztálynév): Az class attribútum értéke alapján történő keresés. Kevésbé lehet egyedi, mint az ID.

    # Elem keresése osztálynév szerint
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. CSS-szűrővel: Erőteljes eszköz, amely lehetővé teszi az elemek megtalálását különböző attribútumok, DOM-struktúra, pszeudo-osztályok stb. alapján. Rugalmassága összehasonlítható XPath-tal, de a szintaxis általában egyszerűbb és a végrehajtás gyorsabb.

    # Elem keresése CSS-szűrővel
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. XPath szerint: Kérdezős nyelv az XML-dokumentumok (beleértve az HTML-t) csomópontjainak keresésére. Lehetővé teszi az elemek megtalálását pozíciójuk, attribútumaik, szövegeik alapján. Hasznos, ha az elemek nem rendelkeznek egyedi ID/osztályokkal vagy a szülő-gyermek navigációhoz. Kevésbé lehet hatékony, mint a CSS-szűrők.

    # Elem keresése XPath szerint
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Tag név szerint: Minden olyan elem keresése, amely egy adott tag-et tartalmaz. Ritkán használják konkrét elem megtalálására, inkább listát ad.

    # Minden div elem keresése
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Link szöveg szerint (Link Text/Partial Link Text): Kifejezetten <a> (hivatkozások) elemekhez.

    # Link keresése pontos szöveg szerint
    driver.find_element(By.LINK_TEXT, "Kattints ide")
    
    # Link keresése részleges szöveg szerint
    driver.find_element(By.PARTIAL_LINK_TEXT, "Kattints")
    
  7. Név szerint (Name): A name attribútum értéke alapján.

    # Elem keresése name attribútum szerint
    driver.find_element(By.NAME, "felhasználónév")
    

A helymeghatározó kiválasztásakor az alábbi elveket követem:

  • Egyediség: A helymeghatározónak egyértelműen azonosítania kell a kívánt elemet.
  • Stabilitás: Olyan helymeghatározókat választok, amelyek kevésbé változnak a dizájn vagy a oldal szerkezetének módosításakor (preferálom az ID-t és az attribútumokat, nem a pozíciós XPath-et).
  • Átláthatóság és karbantarthatóság: A helymeghatározónak érthetőnek kell lennie.

CSS-szűrők vagy XPath használatakor igyekszem elkerülni a DOM mély vagy abszolút szerkezetétől való függést, inkább a legközelebbi egyedi szülőhöz vagy saját attribútumaikhoz viszonyítva keresek. A böngésző DOM-inspekciós eszközeit használom a helymeghatározók hibakereséséhez és érvényesítéséhez.