Sobes.tech
Junior

Veb səhifədə elementlər üçün lokatorları necə tapacaqsınız?

sobes.tech Süni İntellekt

AI-dan cavab

Elementləri tapmaq üçün aşağıdakı yanaşmalardan istifadə edirəm, ən etibarlı olanlardan başlayaraq:

  1. ID ilə: Elementin unikal identifikatoru. Əgər ID inkişaf etdiricilər tərəfindən verilibsə, ən stabil variantdır.

    # Elementi ID ilə tapmaq
    driver.find_element(By.ID, "element_id")
    
  2. Sinif (sinif adı) ilə: class atributunun dəyəri ilə axtarış. ID-dən daha az unikal ola bilər.

    # Elementi sinif adı ilə tapmaq
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. CSS seçici ilə: Güclü alət, müxtəlif atributlar, DOM strukturu, pseudoklasslar və s. vasitəsilə elementləri tapmağa imkan verir. Elastikliyi XPath ilə müqayisə olunur, lakin sintaksisi adətən daha sadə və icrası daha sürətlidir.

    # CSS seçici ilə element tapmaq
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. XPath ilə: XML sənədlərində (HTML daxil olmaqla) düyünləri tapmaq üçün sorğu dili. DOM-da onların mövqeyinə, atributlarına, mətnlərinə əsaslanaraq elementləri tapmağa imkan verir. Unikal ID/klass olmayan elementlər və ya valideyn/uşaq elementlər arasında naviqasiya üçün yaxşıdır. CSS seçicilərindən daha az performanslı ola bilər.

    # XPath ilə element tapmaq
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Tag adı ilə (Tag Name): Müəyyən tag-ə malik bütün elementləri axtarır. Xüsusi elementin tapılması üçün nadir hallarda istifadə olunur, daha çox siyahı almaq üçün.

    # Bütün div elementlərini tapmaq
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Link mətninə görə (Link Text/Partial Link Text): Xüsusi olaraq <a> (linklər) üçün.

    # Dəqiq mətnlə link tapmaq
    driver.find_element(By.LINK_TEXT, "Buraya klik et")
    
    # Qismən mətnlə link tapmaq
    driver.find_element(By.PARTIAL_LINK_TEXT, "Buraya")
    
  7. Ad ilə (Name): name atributunun dəyəri ilə axtarış. Tez-tez form sahələri üçün istifadə olunur.

    # name atributu ilə element tapmaq
    driver.find_element(By.NAME, "istifadəçi adı")
    

Locatörü seçərkən aşağıdakı prinsiplərə əməl edirəm:

  • Unikalıq: Locatör, lazım olan elementi unikal şəkildə tanımlamalıdır.
  • Stabillik: Dəyişikliklərə ən az təsir edən locatörləri seçirəm (ID və atributlara üstünlük verirəm, mövqeyə əsaslanan XPath-dən qaçın).
  • Oxunaqlıq və saxlanma: Locatör anlaşılan olmalıdır.

CSS seçicilər və ya XPath istifadə edərkən, DOM strukturunun dərin və ya mütləq asılılıqlarından qaçmağa çalışıram, ən yaxın unikal valideynə və ya onların öz atributlarına əsaslanaraq elementləri axtarıram. Brauzerin DOM inspektsiya vasitələrindən istifadə edərək locatörləri debug və təsdiqləyirəm.