Για να κατανοήσετε τις επεκτάσεις, ας κατανοήσουμε πρώτα τους τρεις πυλώνες του σεληνίου IDE
- Ενέργεια: Τι λειτουργία εκτελείτε στην οθόνη UI
- Αξιολογητές / Δήλωση: Τι επαλήθευση κάνετε σε δεδομένα που λαμβάνετε από το περιβάλλον εργασίας χρήστη
- Στρατηγική εντοπισμού: Πώς μπορούμε να βρούμε το στοιχείο στη διεπαφή χρήστη.
Τώρα, το Selenium IDE διαθέτει μια πολύ ώριμη βιβλιοθήκη με πολλές ενέργειες, ισχυρισμούς / αξιολογητές και στρατηγικές εντοπισμού.
Αλλά μερικές φορές πρέπει να προσθέσουμε περισσότερη λειτουργικότητα σε αυτό για τις απαιτήσεις του έργου μας. Σε αυτήν την περίπτωση, μπορούμε να επεκτείνουμε αυτήν τη βιβλιοθήκη προσθέτοντας τις προσαρμοσμένες επεκτάσεις μας. Αυτές οι προσαρμοσμένες επεκτάσεις ονομάζονται «Επέκταση χρήστη».
Για παράδειγμα, χρειαζόμαστε μια Ενέργεια η οποία μπορεί να μετατρέψει το κείμενο σε κεφαλαία πριν το συμπληρώσουμε σε ένα στοιχείο ιστού. Δεν μπορείτε να βρείτε αυτήν την ενέργεια στην προεπιλεγμένη βιβλιοθήκη ενεργειών. Σε αυτήν την περίπτωση μπορείτε να δημιουργήσετε τη δική σας «επέκταση χρήστη». Σε αυτό το σεμινάριο, θα μάθουμε πώς να δημιουργούμε επέκταση χρήστη για τη μετατροπή κειμένου σε κεφαλαία
Απαίτηση για δημιουργία επέκτασης χρήστη Selenium:
Για να δημιουργήσουμε μια επέκταση χρήστη για το Selenium IDE, πρέπει να γνωρίζουμε τη βασική ιδέα του πρωτότυπου αντικειμένου JavaScript και Java Script.
Για να δημιουργήσετε την επέκταση χρήστη, πρέπει να δημιουργήσετε μεθόδους σεναρίου Java και να τις προσθέσετε στο πρωτότυπο αντικειμένου σεληνίου και στο πρωτότυπο αντικειμένου PageBot.
Πώς αναγνωρίζει το Selenium IDE την επέκταση χρήστη;
Μετά την προσθήκη της επέκτασης χρήστη στο Selenium IDE όταν ξεκινάμε το Selenium IDE, όλες αυτές οι επεκτάσεις σε πρωτότυπο javascript φορτώνονται και το Selenium IDE τις αναγνωρίζει με το όνομά τους.
Τρόπος δημιουργίας επέκτασης χρήστη
Βήμα 1) Ενέργεια - όλες οι ενέργειες ξεκινούν από το "do", δηλαδή εάν η ενέργεια είναι για κεφαλαίο κείμενο από το όνομά του θα είναι doTextUpperCase. Όταν προσθέτουμε αυτήν τη μέθοδο δράσης στο Selenium IDE, το ίδιο το Selenium IDE θα δημιουργήσει μια μέθοδο αναμονής για αυτήν την ενέργεια. Έτσι, σε αυτήν την περίπτωση όταν δημιουργούμε ενέργεια doTextUpperCase , το Selenium IDE θα δημιουργήσει μια αντίστοιχη συνάρτηση αναμονής ως TextUpperCaseAndWait . Μπορεί να δεχτεί δύο παραμέτρους
Παράδειγμα: Ενέργεια κειμένου κεφαλαίων
Selenium.prototype.doTextUpperCase = συνάρτηση (εντοπιστής, κείμενο) {// Εδώ το findElement είναι το ίδιο ικανό να χειριστεί όλους τους τύπους εντοπισμού (xpath, css, name, id, className), Απλώς πρέπει να περάσουμε το κείμενο εντοπισμούvar element = this.page (). findElement (εντοπιστής);// Δημιουργήστε το κείμενο προς πληκτρολόγησηtext = text.toUpperCase ();// Αντικαταστήστε το κείμενο του στοιχείου με το νέο κείμενοthis.page (). ReplText (στοιχείο, κείμενο);};
Βήμα 2) Αξιολογητές / Δήλωση - Όλοι οι αξιολογητές που είναι εγγεγραμμένοι σε πρωτότυπο αντικειμένου σεληνίου θα προτάσσονται
από "get" ή "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Μπορεί να δεχτεί δύο παραμέτρους, μία για στόχο και άλλη για πεδίο τιμής σε περίπτωση δοκιμής.
Για κάθε Αξιολογητή, θα υπάρχουν αντίστοιχες συναρτήσεις επαλήθευσης που θα προτάσσονται από "επαλήθευση", "επιβεβαίωση" και το πρόθεμα συνάρτησης αναμονής από "waitFor"
Παράδειγμα: Για αξιολογητές κεφαλαίων κεφαλαίων
Selenium.prototype.assertTextUpperCase = συνάρτηση (εντοπιστής, κείμενο) {// Όλες οι στρατηγικές εντοπισμού χειρίζονται αυτόματα από το "findElement"var element = this.page (). findElement (εντοπιστής);// Δημιουργήστε το κείμενο για επαλήθευσηtext = text.toUpperCase ();// Λάβετε την πραγματική τιμή του στοιχείουvar actualValue = element.value;// Βεβαιωθείτε ότι η πραγματική τιμή ταιριάζει με το αναμενόμενοAssert.matches (αναμενόμενη τιμή, πραγματική τιμή);};Selenium.prototype.isTextEqual = συνάρτηση (εντοπιστής, κείμενο) {επιστρέψτε αυτό.getText (εντοπιστής) .value === κείμενο;};Selenium.prototype.getTextValue = συνάρτηση (εντοπιστής, κείμενο) {επιστρέψτε αυτό.getText (εντοπιστής). τιμή;};
Βήμα 3) Στρατηγική εντοπισμού - Εάν θέλουμε να δημιουργήσουμε τη δική μας λειτουργία για να εντοπίσουμε ένα στοιχείο τότε
πρέπει να επεκτείνουμε το πρωτότυπο PageBot με μια συνάρτηση με το πρόθεμα "locateElementBy."
Θα πάρει δύο παραμέτρους, η πρώτη θα είναι η συμβολοσειρά εντοπισμού και η δεύτερη θα είναι το έγγραφο
όπου πρέπει να αναζητηθεί.
Παράδειγμα: Για εντοπισμό κειμένου κεφαλαίων κεφαλαίων
// Το "inDocument" είναι ένα έγγραφο που αναζητάτε.PageBot.prototype.locateElementByUpperCase = συνάρτηση (κείμενο, inDocument) {// Δημιουργήστε το κείμενο για αναζήτησηvar expectValue = text.toUpperCase ();// Εξετάστε όλα τα στοιχεία, αναζητώντας αυτά που έχουν// a value === η αναμενόμενη τιμή μαςvar allElements = inDocument.getElementsByTagName ("*");// Αυτό το αστέρι '*' είναι ένα είδος κανονικής έκφρασης που θα περάσει από κάθε στοιχείο (σε HTML DOM, κάθε στοιχείο έχει σίγουρα ένα όνομα ετικέτας όπως , ,,