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:
-
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") -
Sinif (sinif adı) ilə:
classatributunun 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") -
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']") -
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']") -
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") -
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") -
Ad ilə (Name):
nameatributunun 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.