WebElement σε Selenium
⚡ Έξυπνη Σύνοψη
WebElement σε Selenium αναπαριστά κάθε στοιχείο ελέγχου φόρμας ως προγραμματιζόμενο αντικείμενο, επιτρέποντας στους δοκιμαστές να αλληλεπιδρούν με πεδία κειμένου, πλαίσια ελέγχου, κουμπιά επιλογής και στοιχεία υποβολής χρησιμοποιώντας τις μεθόδους findElement, sendKeys, κλικ, διαγραφή και υποβολή μέσω Java παραδείγματα κώδικα.

WebElement σε Selenium
Οι φόρμες είναι τα θεμελιώδη στοιχεία ιστού που καταγράφουν πληροφορίες από τους επισκέπτες του ιστότοπου. Οι φόρμες ιστού περιλαμβάνουν διαφορετικά στοιχεία ελέγχου GUI, όπως πλαίσια κειμένου, πεδία κωδικού πρόσβασης, πλαίσια ελέγχου, κουμπιά επιλογής, αναπτυσσόμενα μενού και εισόδους αρχείων.
Αυτό το σεμινάριο εξηγεί πώς να αποκτήσετε πρόσβαση σε κάθε στοιχείο φόρμας χρησιμοποιώντας Selenium WebDriver με Java. Selenium ενσωματώνει κάθε στοιχείο φόρμας ως αντικείμενο του WebElement. Παρέχει ένα API για τον εντοπισμό στοιχείων και την εκτέλεση ενεργειών βάσει αυτών, συμπεριλαμβανομένης της εισαγωγής κειμένου, του κλικ σε κουμπιά και της υποβολής φορμών. Οι παρακάτω ενότητες καλύπτουν τις μεθόδους που είναι διαθέσιμες για κάθε στοιχείο φόρμας.
Εισαγωγή στο WebElement, findElement(), findElements()
Selenium Το WebDriver αντιπροσωπεύει ένα απλό στοιχείο φόρμας ως αντικείμενο του Στοιχείο Ιστού.
Το WebDriver αναγνωρίζει στοιχεία φόρμας χρησιμοποιώντας διαφορετικές ιδιότητες του στοιχείου web, όπως ID, Name, Class, XPath, Όνομα ετικέτας, επιλογείς CSS και κείμενο συνδέσμου.
Το WebDriver παρέχει τις ακόλουθες δύο μεθόδους WebElement για την εύρεση στοιχείων:
- findElement() – βρίσκει ένα μόνο στοιχείο ιστού και το επιστρέφει ως WebElement Selenium αντικείμενο.
- findElements() – επιστρέφει μια λίστα αντικειμένων WebElement που ταιριάζουν με τα κριτήρια εντοπισμού.
Το παρακάτω παράδειγμα δείχνει πώς να ανακτήσετε ένα μόνο στοιχείο, ένα πεδίο κειμένου σε μια ιστοσελίδα, ως αντικείμενο WebElement χρησιμοποιώντας τη μέθοδο findElement(). Η μέθοδος findElements() για την εύρεση πολλαπλών στοιχείων καλύπτεται σε επόμενα εκπαιδευτικά βίντεο.
Βήμα 1) Εισαγάγετε το πακέτο που απαιτείται για τη δημιουργία αντικειμένων WebElement.
Βήμα 2) Καλέστε τη μέθοδο findElement() που είναι διαθέσιμη στην κλάση WebDriver για να ανακτήσετε ένα αντικείμενο WebElement, όπως φαίνεται παρακάτω.
Selenium Εισαγωγή κειμένου
Τα πλαίσια εισαγωγής αναφέρονται σε έναν από αυτούς τους δύο τύπους:
- Πεδία κειμένου - Selenium πλαίσια κειμένου εισαγωγής που δέχονται πληκτρολογημένες τιμές και τις εμφανίζουν ακριβώς όπως έχουν εισαχθεί.
- Πεδία κωδικού πρόσβασης – πλαίσια κειμένου που δέχονται πληκτρολογημένες τιμές αλλά τις καλύπτουν ως μια σειρά ειδικών χαρακτήρων (συνήθως κουκκίδες ή αστερίσκοι) για την απόκρυψη ευαίσθητων δεδομένων εισόδου.
Εντοπιστές
Η μέθοδος findElement() δέχεται μία παράμετρο, η οποία είναι ένας εντοπιστής που δείχνει στο στοιχείο. Διαφορετικοί εντοπιστές, συμπεριλαμβανομένων των By.id(), By.name(), By.xpath() και By.cssSelector(), βρίσκουν στοιχεία στη σελίδα χρησιμοποιώντας τις ιδιότητές τους, όπως id, name ή path.
Μπορείτε να χρησιμοποιήσετε πρόσθετα όπως το FirePath για να λάβετε τις τιμές id, xpath και άλλες τιμές εντοπιστή για στοιχεία.
Χρησιμοποιώντας το παράδειγμα τοποθεσίας https://demo.guru99.com/test/login.html, ο παρακάτω κώδικας εντοπίζει το πεδίο κειμένου "Διεύθυνση ηλεκτρονικού ταχυδρομείου" χρησιμοποιώντας τον εντοπιστή αναγνωριστικού και το πεδίο "Κωδικός πρόσβασης" χρησιμοποιώντας τον εντοπιστή ονόματος.
- Το πεδίο κειμένου ηλεκτρονικού ταχυδρομείου βρίσκεται κατά id.
- Το πεδίο κωδικού πρόσβασης βρίσκεται δίπλα στο όνομα.
κλειδιά αποστολής Selenium
sendKeys() σε Selenium είναι μια μέθοδος που χρησιμοποιείται για την εισαγωγή επεξεργάσιμου περιεχομένου σε πεδία κειμένου και κωδικού πρόσβασης κατά την εκτέλεση της δοκιμής. Αυτά τα πεδία αναγνωρίζονται μέσω εντοπιστών όπως όνομα, κλάση και αναγνωριστικό. Η μέθοδος είναι διαθέσιμη στο αντικείμενο WebElement. Σε αντίθεση με τη μέθοδο τύπου, η sendKeys() δεν αντικαθιστά το υπάρχον κείμενο σε ένα πλαίσιο κειμένου.
Πώς να εισάγετε κείμενο Selenium
Για να εισαγάγετε κείμενο σε πεδία κειμένου και πεδία κωδικού πρόσβασης, η μέθοδος sendKeys() είναι η διαθέσιμη στο WebElement στο Selenium.
Χρησιμοποιώντας το ίδιο παράδειγμα του https://demo.guru99.com/test/login.html, το παρακάτω απόσπασμα εντοπίζει το πεδίο κειμένου και το πεδίο κωδικού πρόσβασης και εισάγει κείμενο σε Selenium.
- Βρείτε το πεδίο κειμένου "Διεύθυνση ηλεκτρονικού ταχυδρομείου" χρησιμοποιώντας τον εντοπιστή αναγνωριστικού.
- Βρείτε το πεδίο "Κωδικός πρόσβασης" χρησιμοποιώντας τον εντοπιστή ονόματος.
- Εισαγάγετε κείμενο στη «Διεύθυνση Email» χρησιμοποιώντας το Selenium μέθοδος sendKeys.
- Εισαγάγετε έναν κωδικό πρόσβασης στο πεδίο "Password" χρησιμοποιώντας τη μέθοδο sendKeys().
Διαγραφή τιμών στην είσοδο Boxes
The Σαφή() Η μέθοδος διαγράφει το κείμενο μέσα σε ένα πλαίσιο εισαγωγής. Αυτή η μέθοδος δεν απαιτεί παράμετρο. Το παρακάτω απόσπασμα διαγράφει το κείμενο από τα πεδία Email ή Password.
Selenium Κάντε κλικ στο κουμπί Κουμπιά
The Selenium Η πρόσβαση στο κουμπί κλικ γίνεται χρησιμοποιώντας τη μέθοδο click().
Στο παραπάνω παράδειγμα
- Βρείτε το κουμπί για να συνδεθείτε.
- Κάντε κλικ στο κουμπί «Είσοδος» στη σελίδα σύνδεσης του ιστότοπου για να επαληθεύσετε τον κωδικό πρόσβασής σας.
Selenium Κουμπιά υποβολής
Τα κουμπιά υποβολής στέλνουν ολόκληρη τη φόρμα στον διακομιστή. Μπορείτε είτε να καλέσετε τη μέθοδο click() στο WebElement, όπως φαίνεται παραπάνω, είτε να χρησιμοποιήσετε τη μέθοδο submit() σε οποιοδήποτε στοιχείο της φόρμας ή στο ίδιο το κουμπί υποβολής.
Όταν χρησιμοποιείται η συνάρτηση submit(), το WebDriver αναζητά το DOM για να προσδιορίσει τη φόρμα στην οποία ανήκει το στοιχείο και στη συνέχεια ενεργοποιεί τη συνάρτηση submit.
Πλήρης Code
Εδώ είναι ο πλήρης κώδικας λειτουργίας.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Αντιμετώπιση προβλημάτων
Εάν αντιμετωπίσετε την συνάρτηση NoSuchElementException() κατά την εύρεση στοιχείων, το στοιχείο δεν υπάρχει στη σελίδα τη στιγμή που το WebDriver το απέκτησε πρόσβαση σε αυτό.
- Ελέγξτε ξανά τον εντοπιστή σας χρησιμοποιώντας το FirePath ή την επιλογή Inspect Element στο Chrome.
- Ελέγξτε αν η τιμή που χρησιμοποιείται στον κώδικα διαφέρει από την τρέχουσα τιμή του στοιχείου που εμφανίζεται στο FirePath.
- Ορισμένα χαρακτηριστικά είναι δυναμικά για ορισμένα στοιχεία. Εάν μια τιμή αλλάξει δυναμικά, μεταβείτε σε By.xpath() ή By.cssSelector(), οι οποίες είναι πιο αξιόπιστες αλλά ελαφρώς πιο σύνθετες.
- Μερικές φορές το πρόβλημα είναι μια συνθήκη αναμονής. Το WebDriver ενδέχεται να εκτελέσει τον κώδικα πριν ολοκληρωθεί η φόρτωση της σελίδας.
- Προσθέστε μια αναμονή πριν από το findElement() χρησιμοποιώντας σιωπηρές ή ρητές αναμονές.
Περίληψη
- Ο παρακάτω πίνακας συνοψίζει τις εντολές για την πρόσβαση σε κάθε τύπο στοιχείου που συζητήθηκε παραπάνω.
| Στοιχείο | εντολή | Περιγραφή |
|---|---|---|
| Εισαγωγή Box | αποστολή κλειδιών () | Χρησιμοποιείται για την εισαγωγή τιμών σε πλαίσια κειμένου. |
| Σαφή() | Χρησιμοποιείται για την απαλοιφή της τρέχουσας τιμής των πλαισίων κειμένου. | |
| Συνδέσμοι | Κάντε κλικ() | Χρησιμοποιείται για να κάνετε κλικ στον σύνδεσμο και να περιμένετε να ολοκληρωθεί η φόρτωση της σελίδας πριν προχωρήσετε στην επόμενη εντολή. |
| Υποβολή κουμπιού | υποβάλλουν() | Χρησιμοποιείται για την υποβολή της φόρμας ενεργοποιώντας τον χειριστή υποβολής της γονικής φόρμας. |
- Το WebDriver επιτρέπει την επιλογή περισσότερων από μία επιλογών σε ένα πολλαπλό στοιχείο SELECT.
- Μπορείτε να χρησιμοποιήσετε τη μέθοδο submit() σε οποιοδήποτε στοιχείο μέσα στη φόρμα. Το WebDriver ενεργοποιεί αυτόματα τη συνάρτηση submit της φόρμας στην οποία ανήκει το στοιχείο.






