Επιλέξτε το κουμπί επιλογής και ελέγξτεBox in Selenium
⚡ Έξυπνη Σύνοψη
Επιλέξτε το κουμπί επιλογής και ελέγξτεBox in Selenium Καλύπτει τις τεχνικές WebDriver για την αυτοματοποίηση δύο από τα πιο συνηθισμένα στοιχεία ελέγχου φόρμας. Αυτό το σεμινάριο εξηγεί πώς οι μέθοδοι click() και isSelected() εναλλάσσουν τα ραδιόφωνα και τα πλαίσια ελέγχου, καθοδηγεί στην εργασία. Java κώδικα και μοιράζεται συμβουλές αντιμετώπισης προβλημάτων για εύθραυστους εντοπιστές.

Κουμπί ραδιοφώνου μέσα Selenium
Τα κουμπιά επιλογής ενεργοποιούνται χρησιμοποιώντας το click() μέθοδος, όπως ακριβώς και οποιοδήποτε άλλο WebElement στο SeleniumΕπειδή μόνο μία επιλογή σε μια ομάδα ραδιοφώνου μπορεί να είναι ενεργή κάθε φορά, κάνοντας κλικ σε μια δεύτερη επιλογή αποεπιλέγεται αυτόματα η πρώτη.
Χρησιμοποιώντας https://demo.guru99.com/test/radio.html ως σελίδα εξάσκησης, σημειώστε ότι radio1.click() επιλέγει το κουμπί επιλογής «Επιλογή1». Κλήση radio2.click() στη συνέχεια επιλέγει την «Επιλογή 2» ενώ αφήνει την «Επιλογή 1» μη επιλεγμένη.
Πώς να επιλέξετε ένα πλαίσιο ελέγχου στο Selenium
TogglΗ ενεργοποίηση ή απενεργοποίηση ενός πλαισίου ελέγχου γίνεται επίσης χρησιμοποιώντας το click() μέθοδος. Ο παρακάτω κώδικας κάνει δύο φορές κλικ στο πλαίσιο ελέγχου "Να διατηρηθώ συνδεδεμένος" του Facebook και εμφανίζει την τιμή TRUE όταν το πλαίσιο ελέγχου είναι ενεργοποιημένο και FALSE όταν είναι απενεργοποιημένο.
The isSelected() Η μέθοδος χρησιμοποιείται για να επιβεβαιώσει εάν ένα πλαίσιο ελέγχου είναι ενεργοποιημένο ή απενεργοποιημένο — μια βασική δήλωση κατά την επικύρωση της κατάστασης της φόρμας σε δοκιμαστικές περιπτώσεις.
Εδώ είναι μια άλλη σελίδα-παράδειγμα: https://demo.guru99.com/test/radio.html.
Πλήρης Code Παράδειγμα
Εδώ είναι ο πλήρης κώδικας που ενεργοποιεί και τα δύο κουμπιά επιλογής και το πλαίσιο ελέγχου persist-login στο Facebook.
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 and variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/radio.html");
WebElement radio1 = driver.findElement(By.id("vfb-7-1"));
WebElement radio2 = driver.findElement(By.id("vfb-7-2"));
// Radio Button 1 is selected
radio1.click();
System.out.println("Radio Button Option 1 Selected");
// Radio Button 1 is de-selected and Radio Button 2 is selected
radio2.click();
System.out.println("Radio Button Option 2 Selected");
// Selecting Checkbox
WebElement option1 = driver.findElement(By.id("vfb-6-0"));
// This will toggle the checkbox
option1.click();
// Check whether the checkbox is toggled on
if (option1.isSelected()) {
System.out.println("Checkbox is Toggled On");
} else {
System.out.println("Checkbox is Toggled Off");
}
// Selecting a Checkbox and using the isSelected method
driver.get("https://demo.guru99.com/test/facebook.html");
WebElement chkFBPersist = driver.findElement(By.id("persist_box"));
for (int i = 0; i < 2; i++) {
chkFBPersist.click();
System.out.println("Facebook Persists Checkbox Status is - " + chkFBPersist.isSelected());
}
// driver.close();
}
}
Αντιμετώπιση προβλημάτων
Εάν συναντήσετε NoSuchElementException κατά την εύρεση στοιχείων, αυτό σημαίνει ότι το στοιχείο δεν υπήρχε τη στιγμή που το WebDriver απέκτησε πρόσβαση στη σελίδα. Χρησιμοποιήστε την παρακάτω λίστα ελέγχου για γρήγορη ανάκτηση:
- Ελέγξτε ξανά τον εντοπιστή σας χρησιμοποιώντας το FirePath ή το Inspect Element στο Chrome.
- Επιβεβαιώστε ότι η τιμή που χρησιμοποιήσατε στον κώδικα ταιριάζει με την τρέχουσα τιμή του στοιχείου στη σελίδα.
- Ορισμένα στοιχεία έχουν δυναμικά χαρακτηριστικά, παρόμοια με αυτά που μπορεί να δείτε όταν επιλέξτε ένα αναπτυσσόμενο μενού στο Selenium Πρόγραμμα οδήγησης WebΣε αυτές τις περιπτώσεις, προτιμήστε
By.xpath()orBy.cssSelector(), τα οποία είναι πιο αξιόπιστα αλλά ελαφρώς πιο περίπλοκα. - Μερικές φορές το πρόβλημα είναι ο χρόνος — το WebDriver εκτέλεσε τον κώδικά σας πριν ολοκληρωθεί η φόρτωση της σελίδας.
- Προσθήκη αναμονής πριν
findElement()χρησιμοποιώντας έμμεσες ή ρητές αναμονές για να δοθεί χρόνος στο στοιχείο για απόδοση.




