Sobes.tech
Junior

სელენიუმში რა ლოკატორებია?

sobes.tech AI

პასუხი AI-სგან

Selenium-да ლოკატორებს უწოდებენ მექანიზმებს, რომლებიც გამოიყენება ვებ ელემენტების მოძებნაში გვერდზე. ძირითადი ტიპები:

  • ID: საშუალებას იძლევა ელემენტი იპოვოთ მისი id ატრიბუტის მიხედვით. ყველაზე სწრაფი და საიმედო მეთოდი, თუ ID უნიკალურია და სტაბილურია.
  • Name: საშუალებას იძლევა ელემენტი იპოვოთ მისი name ატრიბუტის მიხედვით. ნაკლებად საიმედო, ვიდრე ID, რადგან name ყოველთვის არ არის უნიკალური.
  • Class Name: საშუალებას იძლევა ელემენტები იპოვოთ მათი class ატრიბუტის მიხედვით. აბრუნებს ელემენტების სიის, რადგან რამდენიმე ელემენტი შეიძლება ჰქონდეს ერთსა და იმავე კლასს.
  • Tag Name: საშუალებას იძლევა ელემენტები იპოვოთ HTML ტეგის სახელით (მაგ., div, a, input). აბრუნებს ელემენტების სიის.
  • Link Text: საშუალებას იძლევა <a> (ლინკი) იპოვოთ ზუსტი ლინკის ტექსტით.
  • Partial Link Text: საშუალებას იძლევა <a> (ლინკი) იპოვოთ ნაწილის მიხედვით ლინკის ტექსტის.
  • CSS Selector: ძლიერი და მოქნილი მეთოდია ელემენტების მოძებნისთვის CSS სელექტორების სინტაქსის გამოყენებით. საშუალებას იძლევა იპოვოთ ელემენტები ატრიბუტების, ტეგების, კლასების, ჰიერქიის და მდგომარეობების კომბინაციით.
  • XPath: ყველაზე ძლიერი და მოქნილი მეთოდია ელემენტების მოძებნისთვის XML/HTML დოკუმენტის სტრუქტურის მიხედვით. საშუალებას იძლევა შექმნათ რთული გზები ელემენტების მისაღწევად, იპოვოთ ატრიბუტების, შინაარსისა და პოზიციის მიხედვით.

გამოყენების მაგალითები:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

ლოკატორის არჩევანი დამოკიდებულია ვებ-ელემენტის სტაბილურობაზე და გვერდის სტრუქტურაზე. რეკომენდირებულია გამოიყენოთ ID, CSS Selector ან XPath სწორად აგებული.