Πώς να κάνετε κλικ στην εικόνα μέσα Selenium Πρόγραμμα οδήγησης Web

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

Κάντε κλικ στην εικόνα στο Selenium Το WebDriver απαιτεί στρατηγικές επιλογής CSS ή XPath, επειδή τα στοιχεία εικόνας δεν εκθέτουν κείμενο συνδέσμου. Αυτό το άρθρο εξηγεί πώς να εντοπίσετε την εικόνα, να ενεργοποιήσετε την ενέργεια κλικ και να επαληθεύσετε ότι η πλοήγηση είναι επιτυχής.

  • 🖱️ Βασική Δράση: Χρησιμοποιήστε την εντολή driver.findElement(By.cssSelector(…)).click() για να κάνετε κλικ σε οποιοδήποτε στοιχείο εικόνας που αποδίδεται μέσα σε μια άγκυρα.
  • 🎯 Επιλογή εντοπιστή: Τα By.linkText και By.partialLinkText δεν λειτουργούν για εικόνες, επομένως απαιτούνται τα By.cssSelector ή By.xpath.
  • 🧪 Βήμα επαλήθευσης: Επιβεβαιώστε ένα επιτυχημένο κλικ επιβεβαιώνοντας τον νέο τίτλο σελίδας με την εντολή driver.getTitle() έναντι της αναμενόμενης συμβολοσειράς προορισμού.
  • 🤖 Βοήθεια AI: Τα σύγχρονα πρόσθετα τεχνητής νοημοσύνης προτείνουν σταθερούς επιλογείς CSS και εντοπιστές αυτόματης επιδιόρθωσης όταν αλλάζουν οι τιμές σήμανσης ή χαρακτηριστικών της εφαρμογής.
  • Κοινές παγίδες: Οι κρυφές, οι αργόστροφα φορτωμένες ή οι επικαλυπτόμενες εικόνες συχνά απαιτούν σαφείς αναμονές, κύλιση προς προβολή ή JavaΚάντε κλικ στο σενάριο για σωστή εγγραφή.

Κάντε κλικ στην εικόνα μέσα Selenium

Κάνοντας κλικ σε μια εικόνα σε Selenium Το WebDriver είναι μια συνηθισμένη εργασία όταν ένα εικονίδιο, λογότυπο ή μικρογραφία συμπεριφέρεται ως σύνδεσμος πλοήγησης. Επειδή οι εικόνες δεν φέρουν ορατό κείμενο, οι παραδοσιακοί εντοπιστές συνδέσμου-κειμένου αποτυγχάνουν και απαιτείται μια πιο αξιόπιστη στρατηγική επιλογής.

Πρόσβαση σε συνδέσμους εικόνας

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

Επειδή είναι εικόνες, δεν μπορούμε να χρησιμοποιήσουμε τις μεθόδους By.linkText() και By.partialLinkText() επειδή οι σύνδεσμοι εικόνας δεν έχουν καθόλου κείμενο συνδέσμου.

Σε αυτήν την περίπτωση, θα πρέπει να καταφύγουμε στη χρήση είτε του By.cssSelector είτε του By.xpath. Η πρώτη μέθοδος προτιμάται γενικά λόγω της απλότητας και της αναγνωσιμότητάς της.

Στο παρακάτω παράδειγμα, θα έχουμε πρόσβαση στο λογότυπο «Facebook» στο επάνω αριστερό τμήμα της σελίδας Ανάκτηση κωδικού πρόσβασης του Facebook.

Πρόσβαση σε συνδέσμους εικόνας

Θα χρησιμοποιήσουμε το By.cssSelector και το χαρακτηριστικό "title" του στοιχείου για να αποκτήσουμε πρόσβαση στον σύνδεσμο εικόνας. Στη συνέχεια, θα επαληθεύσουμε ότι το πρόγραμμα περιήγησης έχει μεταφερθεί στην αρχική σελίδα του Facebook.

Java Code Παράδειγμα

Ο ακόλουθος Selenium Το απόσπασμα WebDriver εκκινεί το Chrome, ανοίγει τη σελίδα ανάκτησης κωδικού πρόσβασης του Facebook, κάνει κλικ στην εικόνα του λογότυπου του Facebook και επικυρώνει τον τίτλο της σελίδας που προκύπτει.

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://www.facebook.com/login/identify?ctx=recover";
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        // click on the "Facebook" logo on the upper left portion
        driver.findElement(By.cssSelector("a[title=\"Go to Facebook home\"]")).click();

        // verify that we are now back on Facebook's homepage
        if (driver.getTitle().equals("Facebook - log in or sign up")) {
            System.out.println("We are back at Facebook's homepage");
        } else {
            System.out.println("We are NOT in Facebook's homepage");
        }
        driver.close();
    }
}

Αποτέλεσμα

Κάντε κλικ στην εικόνα μέσα Selenium Πρόγραμμα οδήγησης Web

Καλυτερα Πρακτικές για Κλικ Εικόνων

Μερικές συνήθειες καθιστούν την αυτοματοποίηση κλικ σε εικόνες πιο αξιόπιστη σε όλα τα προγράμματα περιήγησης και τα μεγέθη οθονών.

  • Προτιμήστε ένα σταθερό χαρακτηριστικό όπως title, alt, aria-label ή data-* αντί για βαθιά ενσωματωμένες διαδρομές CSS.
  • Προσθέστε ένα ρητό WebDriverWait για το ElementToBeClickable πριν κάνετε κλικ.
  • Για εικόνες που φορτώνονται αργά, κάντε κύλιση του στοιχείου στην προβολή με JavascriptΕκτελεστής πρώτα.
  • Εάν μια διαφανής επικάλυψη παρεμποδίσει το κλικ, επιστρέψτε σε ένα JavaΤο σενάριο κάνει κλικ στο υποκείμενο στοιχείο.
  • Επικυρώστε την πλοήγηση με την συνάρτηση driver.getTitle() ή με ένα μοναδικό στοιχείο στη σελίδα προορισμού.

Πώς η Τεχνητή Νοημοσύνη Βελτιώνει τις Στρατηγικές Εντοπισμού Εικόνων

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

Οι μηχανικοί μπορούν επίσης να χρησιμοποιήσουν το ChatGPT ή το GitHub Copilot για να δημιουργήσουν αποσπάσματα WebDriver, να προτείνουν ισχυρές εκφράσεις CSS ή XPath για μια εικόνα και να σχεδιάσουν ισχυρισμούς για τη σελίδα που φορτώνει μετά το κλικ. Ο παραγόμενος κώδικας θα πρέπει να ελέγχεται για την ορθότητά του και για τον χειρισμό των αναμονών και των επικαλύψεων.

Συμπέρασμα

Κάνοντας κλικ στους συνδέσμους εικόνων σε Selenium Το WebDriver είναι απλό μόλις επιλέξετε έναν σταθερό εντοπιστή. Το By.cssSelector με το χαρακτηριστικό title ή alt είναι η πιο ευανάγνωστη προσέγγιση, το By.xpath είναι η εναλλακτική λύση όταν η σήμανση είναι αδέξια και οι σαφείς αναμονές καθιστούν το σενάριο αξιόπιστο σε όλες τις εκτελέσεις.

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

Εντοπίστε την εικόνα με το By.cssSelector ή το By.xpath χρησιμοποιώντας ένα σταθερό χαρακτηριστικό όπως title, alt ή aria-label και, στη συνέχεια, καλέστε την εντολή .click() στο επιστρεφόμενο WebElement. Επαληθεύστε το αποτέλεσμα με την εντολή driver.getTitle() ή ένα μοναδικό στοιχείο στη σελίδα προορισμού.

Ναι. Εργαλεία όπως TestimΤα , Mabl και ChatGPT ελέγχουν το περιβάλλον DOM και προτείνουν έναν σταθερό επιλογέα με βάση τα χαρακτηριστικά title, alt, aria-label ή data. Οι μηχανικοί θα πρέπει να ελέγχουν τον δημιουργημένο εντοπιστή για μοναδικότητα και ανθεκτικότητα.

Ένας αυτοεπιδιορθωτικός εντοπιστής είναι μια λειτουργία τεχνητής νοημοσύνης που εναλλάσσει έναν εναλλακτικό επιλογέα όταν το αρχικό αποτύχει. Πλαίσια όπως το Healenium και το Mabl παρατηρούν αλλαγές στα χαρακτηριστικά μιας εικόνας και επιλέγουν την πιο σταθερή αντικατάσταση, γεγονός που μειώνει τις ασταθείς δοκιμές μετά την ανανέωση του UI.

Και οι δύο εντοπιστές ταιριάζουν στο ορατό κείμενο μέσα σε μια άγκυρα. Ένας σύνδεσμος εικόνας περιβάλλει μια ετικέτα img και δεν εκθέτει κανέναν κόμβο κειμένου, επομένως η αντιστοίχιση δεν επιστρέφει πάντα τίποτα. Χρησιμοποιήστε By.cssSelector ή By.xpath με title, alt ή aria-label αντί αυτού.

Εάν μια επικάλυψη, ένα modal ή μια συμβουλή εργαλείου εμποδίζει την εικόνα, κάντε κύλιση για να εμφανιστεί με JavascriptΕκτελεστής και προσθέστε ένα WebDriverWait για το ElementToBeClickable. Ως εφεδρική επιλογή, εκτελέστε ένα JavaΤο σενάριο κάνει κλικ στο WebElement για να παρακάμψει την επικάλυψηping στρώμα.

Εισάγετε τον νέο τίτλο σελίδας με την εντολή driver.getTitle(), την τρέχουσα URL με driver.getCurrentUrl() ή την παρουσία ενός μοναδικού στοιχείου στη σελίδα προορισμού. Ένας συνδυασμός αυτών των ελέγχων δίνει στη δοκιμή την πεποίθηση ότι το κλικ ενεργοποίησε πραγματικά την πλοήγηση.

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