Sobes.tech
Junior

Ποιοι εντοπιστές υπάρχουν στο Selenium;

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 όταν είναι σωστά κατασκευασμένα.