Επιλέξτε το κουμπί επιλογής και ελέγξτεBox in Selenium

⚡ Έξυπνη Σύνοψη

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

  • 🔘 Κουμπί ραδιοφώνου Toggle: Χρησιμοποιήστε τη μέθοδο click() στο WebElement για να επιλέξετε ένα κουμπί επιλογής. Η επιλογή μιας άλλης επιλογής ακυρώνει αυτόματα την προηγούμενη.
  • ☑️ Πλαίσιο ελέγχου Toggle: Η ίδια μέθοδος click() ενεργοποιεί και απενεργοποιεί ένα πλαίσιο ελέγχου. Η διπλή κλήση της επιστρέφει το πλαίσιο στην αρχική του κατάσταση.
  • Επαλήθευση κατάστασης: Καλέστε την isSelected() για να επιβεβαιώσετε την τρέχουσα κατάσταση εναλλαγής και να δηλώσετε TRUE για ελεγμένα και FALSE για μη ελεγμένα στοιχεία ελέγχου.
  • 🧪 Εργασίας Java Παράδειγμα: Το πλήρες πρόγραμμα καθοδηγεί την Guru99 demo και το πλαίσιο ελέγχου persist-login στο Facebook για την επίδειξη και των δύο ροών.
  • Αξιόπιστοι Εντοπιστές: Αλλάξτε σε By.xpath() ή By.cssSelector() όταν τα αναγνωριστικά αλλάζουν δυναμικά και προσθέστε ρητές αναμονές για να αποτρέψετε το NoSuchElementException.

Επιλέξτε το κουμπί επιλογής και ελέγξτεBox in Selenium

Κουμπί ραδιοφώνου μέσα Selenium

Τα κουμπιά επιλογής ενεργοποιούνται χρησιμοποιώντας το click() μέθοδος, όπως ακριβώς και οποιοδήποτε άλλο WebElement στο SeleniumΕπειδή μόνο μία επιλογή σε μια ομάδα ραδιοφώνου μπορεί να είναι ενεργή κάθε φορά, κάνοντας κλικ σε μια δεύτερη επιλογή αποεπιλέγεται αυτόματα η πρώτη.

Χρησιμοποιώντας https://demo.guru99.com/test/radio.html ως σελίδα εξάσκησης, σημειώστε ότι radio1.click() επιλέγει το κουμπί επιλογής «Επιλογή1». Κλήση radio2.click() στη συνέχεια επιλέγει την «Επιλογή 2» ενώ αφήνει την «Επιλογή 1» μη επιλεγμένη.

Επιλογή κουμπιού επιλογής στο Guru99 σελίδα επίδειξης

Πώς να επιλέξετε ένα πλαίσιο ελέγχου στο Selenium

TogglΗ ενεργοποίηση ή απενεργοποίηση ενός πλαισίου ελέγχου γίνεται επίσης χρησιμοποιώντας το click() μέθοδος. Ο παρακάτω κώδικας κάνει δύο φορές κλικ στο πλαίσιο ελέγχου "Να διατηρηθώ συνδεδεμένος" του Facebook και εμφανίζει την τιμή TRUE όταν το πλαίσιο ελέγχου είναι ενεργοποιημένο και FALSE όταν είναι απενεργοποιημένο.

Selenium κώδικα κάνοντας κλικ στο πλαίσιο ελέγχου "Διατήρηση σύνδεσης" στο Facebook

Η έξοδος της κονσόλας εμφανίζει την κατάσταση εναλλαγής του πλαισίου ελέγχου

The isSelected() Η μέθοδος χρησιμοποιείται για να επιβεβαιώσει εάν ένα πλαίσιο ελέγχου είναι ενεργοποιημένο ή απενεργοποιημένο — μια βασική δήλωση κατά την επικύρωση της κατάστασης της φόρμας σε δοκιμαστικές περιπτώσεις.

Εδώ είναι μια άλλη σελίδα-παράδειγμα: https://demo.guru99.com/test/radio.html.

Selenium κώδικας που επαληθεύει την κατάσταση του πλαισίου ελέγχου με isSelected()

Πλήρης 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 απέκτησε πρόσβαση στη σελίδα. Χρησιμοποιήστε την παρακάτω λίστα ελέγχου για γρήγορη ανάκτηση:

  1. Ελέγξτε ξανά τον εντοπιστή σας χρησιμοποιώντας το FirePath ή το Inspect Element στο Chrome.
  2. Επιβεβαιώστε ότι η τιμή που χρησιμοποιήσατε στον κώδικα ταιριάζει με την τρέχουσα τιμή του στοιχείου στη σελίδα.
  3. Ορισμένα στοιχεία έχουν δυναμικά χαρακτηριστικά, παρόμοια με αυτά που μπορεί να δείτε όταν επιλέξτε ένα αναπτυσσόμενο μενού στο Selenium Πρόγραμμα οδήγησης WebΣε αυτές τις περιπτώσεις, προτιμήστε By.xpath() or By.cssSelector(), τα οποία είναι πιο αξιόπιστα αλλά ελαφρώς πιο περίπλοκα.
  4. Μερικές φορές το πρόβλημα είναι ο χρόνος — το WebDriver εκτέλεσε τον κώδικά σας πριν ολοκληρωθεί η φόρτωση της σελίδας.
  5. Προσθήκη αναμονής πριν findElement() χρησιμοποιώντας έμμεσες ή ρητές αναμονές για να δοθεί χρόνος στο στοιχείο για απόδοση.

Συχνές Ερωτήσεις

Καλέστε την click() στο ίδιο πλαίσιο ελέγχου WebElement για να το απενεργοποιήσετε. Δεν υπάρχει ειδική μέθοδος αποεπιλογής. Χρησιμοποιήστε την isSelected() πριν κάνετε κλικ εάν θέλετε να αποεπιλέξετε μόνο όταν το πλαίσιο ελέγχου είναι επιλεγμένο τη δεδομένη στιγμή, κάτι που διατηρεί την ασφαλή λογική δοκιμής.

Η συνάρτηση isSelected() επιστρέφει true όταν είναι επιλεγμένο ένα πλαίσιο ελέγχου ή ένα κουμπί επιλογής. Η συνάρτηση isEnabled() επιστρέφει true όταν ένα στοιχείο μπορεί να λάβει δεδομένα εισόδου από τον χρήστη. Εξυπηρετούν διαφορετικούς σκοπούς: η συνάρτηση isSelected() επικυρώνει την κατάσταση, ενώ η συνάρτηση isEnabled() επικυρώνει εάν το στοιχείο δέχεται αλληλεπίδραση.

Χρησιμοποιήστε τη συνάρτηση findElements() με έναν εντοπιστή όπως το By.xpath(“//input[@type='checkbox']”) για να λάβετε όλα τα πλαίσια ελέγχου WebElements, κάντε επανάληψη στη λίστα, επιλέξτε isSelected() και καλέστε την click() μόνο σε εκείνα που δεν είναι επιλεγμένα. Αυτό αποτρέπει την τυχαία αποεπιλογή ήδη επιλεγμένων πλαισίων.

Οι βοηθοί τεχνητής νοημοσύνης δημιουργούν στρατηγικές εντοπισμού, επιλέγουν αυτόματα όταν αλλάζουν τα αναγνωριστικά και προτείνουν δηλώσεις για την κατάσταση του ραδιοφώνου και του πλαισίου ελέγχου. Τα εργαλεία τεχνητής νοημοσύνης δημιουργούν επίσης αυτόματα δοκιμές συμπλήρωσης φόρμας από άκρο σε άκρο από εγγραφές οθόνης, μειώνοντας την χειροκίνητη κωδικοποίηση και την προσπάθεια συντήρησης των δοκιμών.

Ναι. Με την υποστήριξη της τεχνητής νοημοσύνης. Selenium Τα εργαλεία αναλύουν το DOM, μαθαίνουν σταθερά χαρακτηριστικά και ξαναγράφουν τους επιλογείς XPath ή CSS όταν τα αναγνωριστικά αλλάζουν μεταξύ των εκδόσεων. Αυτή η δυνατότητα αυτοεπιδιόρθωσης διατηρεί τις δοκιμές ελέγχου φόρμας επιτυχημένες χωρίς χειροκίνητες ενημερώσεις εντοπιστή μετά από κάθε τροποποίηση του UI.

Συνοψίστε αυτήν την ανάρτηση με: