Αποθετήριο αντικειμένων σε Selenium

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

Αποθετήριο αντικειμένων σε Selenium Συγκεντρώνει τους εντοπιστές στοιχείων σε ένα μόνο εξωτερικό αρχείο, διαχωρίζοντάς τους από τα σενάρια δοκιμών. Αυτή η προσέγγιση βελτιώνει τη συντήρηση και επιτρέπει στους δοκιμαστές να ενημερώνουν τους εντοπιστές σε ένα μέρος αντί να επεξεργάζονται πολλές περιπτώσεις δοκιμών.

  • 🗂️ Βασική ιδέα: Αποθηκεύει τους εντοπιστές διεπαφής χρήστη ως ζεύγη κλειδιού-τιμής, που διατηρούνται ξεχωριστά από Selenium Λογική δοκιμής WebDriver.
  • 📄 Προσέγγιση αρχείου ιδιοτήτων: Αποθηκεύστε τους εντοπιστές σε ένα αρχείο κειμένου .properties, το οποίο διαβάζεται κατά τον χρόνο εκτέλεσης μέσω της κλάσης java.util.Properties.
  • 🧩 Προσέγγιση αρχείου XML: Χρησιμοποιήστε ένα αρχείο XML με το Document Object Model και την dom4j για να διαβάσετε εντοπιστές μέσω του selectSingleNode.
  • 🔧 Ροή Υλοποίησης: Δημιουργήστε το αρχείο, αποθηκεύστε δεδομένα κλειδιού-τιμής, διαβάστε τιμές σε μεταβλητές και, στη συνέχεια, μεταβιβάστε τις στο findElement.
  • Όφελος Συντήρησης: Όταν αλλάζει ένας εντοπιστής, ενημερώνεται μόνο το αρχείο αποθετηρίου και όχι κάθε επηρεαζόμενη περίπτωση δοκιμής.

Αποθετήριο αντικειμένων σε Selenium

Τι είναι ένα αποθετήριο αντικειμένων;

Ένα αποθετήριο αντικειμένων είναι μια κοινή θέση αποθήκευσης για όλα τα αντικείμενα. Σε Selenium Στο πλαίσιο του WebDriver, τα αντικείμενα θα ήταν συνήθως οι εντοπιστές που χρησιμοποιούνται για τον μοναδικό προσδιορισμό στοιχείων ιστού.

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

Τύποι αποθετηρίων αντικειμένων σε Selenium Πρόγραμμα οδήγησης Ιστού

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

Ακολουθούν οι τύποι αποθετηρίων αντικειμένων που μπορούν να δημιουργηθούν Selenium WebDriver.

  1. Αποθετήριο αντικειμένων με χρήση του αρχείου Ιδιοτήτων
  2. Αποθετήριο αντικειμένων με χρήση αρχείου XML

Selenium Αποθετήριο αντικειμένων προγράμματος οδήγησης Web χρησιμοποιώντας το αρχείο Ιδιότητες

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

Βήμα 1) Δημιουργία αρχείου ιδιοτήτων στο eclipse

  1. Αρχικά, η παρακάτω δομή έργου java πρέπει να δημιουργηθεί στο eclipse. Το όνομα του έργου και το όνομα του πακέτου μπορούν να είναι οποιαδήποτε έγκυρα ονόματα.

Δημιουργία αρχείου ιδιοτήτων σε Eclipse

  1. Κάντε δεξί κλικ στον κύριο φάκελο του έργου και επιλέξτε Νέο-> Άλλο

Δημιουργία αρχείου ιδιοτήτων σε Eclipse

  1. Στο επόμενο παράθυρο, επιλέξτε Γενικά -> Αρχείο και κάντε κλικ στο κουμπί «Επόμενο»

Δημιουργία αρχείου ιδιοτήτων σε Eclipse

  1. Δώστε ένα έγκυρο όνομα αρχείου με την επέκταση '.properties' στο νέο παράθυρο πόρων αρχείων και κάντε κλικ στο κουμπί 'Τέλος'

Δημιουργία αρχείου ιδιοτήτων σε Eclipse

  1. Ένα αρχείο με όνομα 'application.properties' πρέπει να εμφανίζεται στη Δομή Έργου

Δημιουργία αρχείου ιδιοτήτων σε Eclipse

Βήμα 2) Αποθήκευση δεδομένων σε αρχείο ιδιοτήτων

  1. Τα δεδομένα αποθηκεύονται σε ένα αρχείο ιδιοτήτων με τη μορφή ζευγών κλειδιού-τιμής, με το κλειδί να είναι μοναδικό σε όλο το αρχείο.
  2. Θα προσπαθήσουμε να χρησιμοποιήσουμε το αρχείο ιδιοτήτων για να αναγνωρίσουμε στοιχεία ιστού χρησιμοποιώντας τιμές εντοπιστή.
  3. Ανοίξτε το αρχείο application.properties στο Eclipse και αποθηκεύστε τα ακόλουθα δεδομένα
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Αποθήκευση δεδομένων σε αρχείο ιδιοτήτων

4) Για αυτό το σεμινάριο, χρησιμοποιείται ο παρακάτω ιστότοπος επίδειξης:

https://demo.guru99.com/test/guru99home/. Ακολουθεί το σενάριο δοκιμής:

  • Κάντε κλικ στον σύνδεσμο Mobile Testing χρησιμοποιώντας XPATH
  • Πλοηγηθείτε πίσω
  • Εισαγάγετε δεδομένα στο πλαίσιο κειμένου email χρησιμοποιώντας το αναγνωριστικό
  • Κάντε κλικ στο κουμπί Εγγραφή χρησιμοποιώντας το αναγνωριστικό

Βήμα 3) Ανάγνωση δεδομένων από το αρχείο ιδιοτήτων

  1. Η ανάγνωση δεδομένων από ένα αρχείο ιδιοτήτων μπορεί να γίνει χρησιμοποιώντας την ενσωματωμένη κλάση Properties που παρέχεται στο πακέτο java.util.
  2. Αρχικά, πρέπει να δημιουργηθεί ένα αντικείμενο της κλάσης Properties όπως παρακάτω:
  Properties obj = new Properties();
  1. Πρέπει να δημιουργήσουμε ένα αντικείμενο της κλάσης FileInputStream με τη διαδρομή προς το αρχείο ιδιοτήτων
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Η ανάγνωση δεδομένων από ένα αρχείο ιδιοτήτων μπορεί να γίνει χρησιμοποιώντας τη μέθοδο φόρτωσης που προσφέρεται από την κλάση Properties στην Java. Ο παρακάτω κώδικας δείχνει τη χρήση της μεθόδου φόρτωσης.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Η συμβολοσειρά 'mobileTesting' θα περιέχει το XPATH για τον προσδιορισμό του συνδέσμου Mobile Testing εντός της ιστοσελίδας.

Βήμα 4) Χρήση αρχείου ιδιοτήτων σε δοκιμαστικά σενάρια

Ένα αρχείο ιδιοτήτων μπορεί να χρησιμοποιηθεί σε σενάρια δοκιμών διαβάζοντας δεδομένα από το αρχείο ιδιοτήτων και μεταβιβάζοντας τα δεδομένα ως παράμετρο στη μέθοδο findElement. Ο παρακάτω κώδικας δείχνει τη χρήση δεδομένων που διαβάζονται από ένα αρχείο ιδιοτήτων σε σενάρια δοκιμών.

driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click();
driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();

Ο παρακάτω είναι ο πλήρης κώδικας που χρησιμοποιείται για το παραπάνω σενάριο δοκιμής.

package com.objectrepository.demo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

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

public class DemoOR {

    public static void main(String[] args) throws IOException {

        // Create WebDriver Instance
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/guru99home/");
        driver.manage().window().maximize();
        // Load the properties File
        Properties obj = new Properties();
        FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
        obj.load(objfile);
        // Navigate to link Mobile Testing and Back
        driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click();
        driver.navigate().back();
        // Enter Data into Form
        driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com");
        driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
    }

}

Selenium Αποθετήριο αντικειμένων WebDriver με χρήση αρχείου XML

Το XML σημαίνει Extensible Markup Language. Ένα αρχείο XML χρησιμοποιεί το Document Object Model (DOM) ως βασική δομή. Η μορφή αρχείου XML θα αναπαράγει τη μορφή HTML πάνω στην οποία κατασκευάζεται η ιστοσελίδα. Παρακάτω είναι η λίστα με τα θέματα που θα καλυφθούν.

Βήμα 1) Δημιουργία αρχείου XML στο eclipse

  1. Η παρακάτω δομή έργου java πρέπει να δημιουργηθεί μέσα Eclipse.

Δημιουργία αρχείου XML σε Eclipse

  1. Κάντε δεξί κλικ στο φάκελο του έργου, επιλέξτε Νέο -> Άλλο

Δημιουργία αρχείου XML σε Eclipse

  1. Επιλέξτε το αρχείο XML μέσα στον φάκελο XML και κάντε κλικ στο κουμπί «Επόμενο»

Δημιουργία αρχείου XML σε Eclipse

  1. Εισαγάγετε ένα έγκυρο όνομα αρχείου XML και κάντε κλικ στο κουμπί «Τέλος»

Δημιουργία αρχείου XML σε Eclipse

  1. Ένα αρχείο XML θα προστεθεί στο φάκελο του έργου όπως φαίνεται παρακάτω

Δημιουργία αρχείου XML σε Eclipse

Βήμα 2) Αποθήκευση δεδομένων σε αρχείο XML

Τα δεδομένα μπορούν να αποθηκευτούν σε ένα αρχείο XML με τη μορφή του Μοντέλου Αντικειμένου Εγγράφου (DOM). Για λόγους απλότητας, μπορούμε να χρησιμοποιήσουμε το παρακάτω σενάριο δοκιμής ως παράδειγμα.

  • Κάντε κλικ στον σύνδεσμο Mobile Testing χρησιμοποιώντας XPATH
  • Πλοήγηση Πίσω στην Αρχική σελίδα
  • Εισαγάγετε δεδομένα στο πλαίσιο κειμένου email χρησιμοποιώντας το αναγνωριστικό
  • Κάντε κλικ στο κουμπί Εγγραφή χρησιμοποιώντας το αναγνωριστικό

Παρακάτω παρουσιάζεται η μορφή του αρχείου XML που θα χρησιμοποιηθεί.

<menu>
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>
      <email> philadelphia-field-email</email>
      <signup> philadelphia-field-submit </signup>
 </menu>

Αποθηκεύστε τον παραπάνω κώδικα XML στο properties.xml

Αποθήκευση δεδομένων σε αρχείο XML

Στην καρτέλα σχεδίαση θα δείτε

Αποθήκευση δεδομένων σε αρχείο XML

Βήμα 3) Ανάγνωση δεδομένων από αρχείο XML

1. Η ανάγνωση δεδομένων από ένα αρχείο XML μπορεί να επιτευχθεί χρησιμοποιώντας την ενσωματωμένη κλάση 'dom4j' στην Java. Λάβετε υπόψη ότι πρέπει να προσθέσετε τα παρακάτω αρχεία JAR στη διαδρομή δημιουργίας του έργου σας πριν προχωρήσετε με τον κώδικα.

  • jaxen.jar
  • dom4j-1.6.jar

2. Παρακάτω είναι ο κώδικας για την ανάγνωση δεδομένων από το αρχείο XML.

        File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(inputFile);
        String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();
        String emailTextBox = document.selectSingleNode("//menu/email").getText();
        String signUpButton = document.selectSingleNode("//menu/signup").getText();

3. Αρχικά, πρέπει να δημιουργήσουμε ένα αντικείμενο File και να το περάσουμε ως παράμετρο στη μέθοδο 'read' της κλάσης SAXReader. Μόλις τα δεδομένα του αρχείου XML διαβαστούν με επιτυχία, μπορούμε να έχουμε πρόσβαση σε μεμονωμένους κόμβους του εγγράφου XML χρησιμοποιώντας τη μέθοδο 'selectSingleNode'.

Βήμα 4) Χρήση αρχείου XML σε δοκιμαστικά σενάρια

Ένα αρχείο XML μπορεί να χρησιμοποιηθεί σε δοκιμαστικά σενάρια διαβάζοντας δεδομένα από το αρχείο XML και μεταβιβάζοντας τα δεδομένα ως παράμετρο στη μέθοδο findElement. Ο παρακάτω κώδικας δείχνει τη χρήση δεδομένων που διαβάζονται από ένα αρχείο XML σε δοκιμαστικά σενάρια.

driver.findElement(By.xpath(mobileTesting)).click();
driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(signUpButton)).click();

Ο παρακάτω κώδικας δείχνει τη χρήση ενός αρχείου XML στο selenium WebDriver

package com.objectrepository.demo;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class DemoORXML {

    public static void main(String[] args) throws DocumentException {
        // Creating WebDriver Instance
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/guru99home/");
        driver.manage().window().maximize();
        // Reading XML File
        File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml");
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(inputFile);
        String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText();
        String emailTextBox = document.selectSingleNode("//menu/email").getText();
        String signUpButton = document.selectSingleNode("//menu/signup").getText();

        // Navigating to Mobile Testing and back
        driver.findElement(By.xpath(mobileTesting)).click();
        driver.navigate().back();
        // Entering Form Data
        driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
        driver.findElement(By.id(signUpButton)).click();

    }
}

Κάντε λήψη του προγράμματος οδήγησης Web Eclipse ΕΡΓΟ

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

Ένα αποθετήριο αντικειμένων αποθηκεύει μόνο εξωτερικά εντοπιστές στοιχείων. Το Μοντέλο Αντικειμένου Σελίδας είναι ένα ευρύτερο μοτίβο που περιβάλλει τους εντοπιστές και τις ενέργειες σελίδας μέσα σε κλάσεις σελίδων.

Ναι. Οι εντοπιστές μπορούν επίσης να αποθηκευτούν σε αρχεία Excel ή CSV, να διαβαστούν χρησιμοποιώντας μια βιβλιοθήκη όπως το Apache POI και να διαβιβαστούν στο findElement.

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

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

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

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