Selenium Βασικές επεκτάσεις (User-Extensions.js)
⚡ Έξυπνη Σύνοψη
Selenium Οι βασικές επεκτάσεις, που ονομάζονται επίσης επεκτάσεις χρήστη, προσθέτουν προσαρμοσμένες ενέργειες, στοιχεία πρόσβασης και στρατηγικές εντοπισμού σε Selenium IDE συνδέοντας JavaΛειτουργίες σεναρίου για το Selenium και τα πρωτότυπα αντικείμενα PageBot κατά την εκκίνηση του IDE.
Selenium Βασικές επεκτάσεις
Για να κατανοήσουμε τις επεκτάσεις, ας κατανοήσουμε πρώτα τους τρεις πυλώνες της Selenium IDEΚάθε εντολή που καταγράφετε ή πληκτρολογείτε στο IDE ανήκει σε μία από τις τρεις παρακάτω κατηγορίες και κάθε στιγμιότυπο οθόνης δείχνει πώς εμφανίζεται αυτή η κατηγορία στη λίστα εντολών του IDE.
- Ενέργειες: Ποια λειτουργία εκτελείτε στην οθόνη UI.
- Αξεσουάρ / Ισχυρισμός: Τι επαλήθευση εκτελείτε στα δεδομένα που λαμβάνετε από το περιβάλλον χρήστη.
- Στρατηγική εντοπισμού: Πώς βρίσκετε το στοιχείο στο περιβάλλον χρήστη.
Selenium Το IDE συνοδεύεται από μια ώριμη βιβλιοθήκη που περιέχει ήδη πολλές ενέργειες, προσπελάσεις και ισχυρισμούς, καθώς και στρατηγικές εντοπισμού.
Μερικές φορές, ωστόσο, ένα έργο χρειάζεται λειτουργικότητα που δεν υπάρχει σε αυτήν τη βιβλιοθήκη. Σε αυτήν την περίπτωση, μπορείτε να επεκτείνετε τη βιβλιοθήκη προσθέτοντας τη δική σας προσαρμοσμένη επέκταση. Αυτές οι προσαρμοσμένες επεκτάσεις ονομάζονται επέκταση χρήστη.
Για παράδειγμα, ας υποθέσουμε ότι χρειάζεστε μια ενέργεια που μετατρέπει κείμενο σε κεφαλαία γράμματα πριν το συμπληρώσετε σε ένα στοιχείο ιστού. Δεν υπάρχει τέτοια ενέργεια στην προεπιλεγμένη βιβλιοθήκη, επομένως δημιουργείτε τη δική σας επέκταση χρήστη. Σε αυτό το σεμινάριο θα μάθετε πώς να δημιουργήσετε μια επέκταση χρήστη που μετατρέπει κείμενο σε κεφαλαία γράμματα.
⚠️ Πριν ξεκινήσετε: η ροή εργασίας που περιγράφεται εδώ ανήκει σε Selenium Πυρήνας και το πρωτότυπο Firefox-πρόσθετο Selenium IDE. Selenium Ο πυρήνας έχει αποσυρθεί και η υποστήριξη επεκτάσεων χρήστη έχει καταργηθεί από το Selenium βάζα σε Selenium 3. Τα βήματα και ο κώδικας που ακολουθούν διατηρούνται επειδή ένας μεγάλος αριθμός παλαιών σουιτών Selenese εξακολουθούν να εξαρτώνται από αυτά. Η σύγχρονη αντικατάσταση περιγράφεται αργότερα σε αυτό το άρθρο.
Απαίτηση για τη δημιουργία ενός Selenium Επέκταση χρήστη
Για να δημιουργήσετε μια επέκταση χρήστη για Selenium IDE, χρειάζεστε τις βασικές έννοιες του JavaΓραφή και, ειδικότερα, το JavaΠρωτότυπο αντικείμενο σεναρίου. Το παρακάτω διάγραμμα δείχνει τα δύο πρωτότυπα αντικείμενα στα οποία συνδέεται μια επέκταση χρήστη.
Για να δημιουργήσετε την επέκταση χρήστη σας, γράφετε Javaμεθόδους σεναρίου και προσθήκη τους στο Selenium πρωτότυπο αντικειμένου και στο πρωτότυπο αντικειμένου PageBot.
Πως Selenium Το IDE αναγνωρίζει μια επέκταση χρήστη
Μετά την προσθήκη μιας επέκτασης χρήστη στο Selenium IDE και το IDE ξεκινά, κάθε λειτουργία καταχωρημένη σε αυτά JavaΤα πρωτότυπα σεναρίων φορτώνονται και Selenium Το IDE αναγνωρίζει την καθεμία από το όνομά της. Αυτός είναι ο λόγος για τον οποίο τα προθέματα ονομασίας στην επόμενη ενότητα δεν αποτελούν επιλογή στυλ — είναι ο τρόπος με τον οποίο το IDE ταξινομεί την εντολή σας.
Πώς να δημιουργήσετε μια επέκταση χρήστη
Βήμα 1) Δράση – όλες οι ενέργειες ξεκινούν με doΕάν η ενέργεια μετατρέπει κείμενο σε κεφαλαία γράμματα, το όνομά της είναι doTextUpperCaseΌταν προσθέτετε αυτήν τη μέθοδο ενέργειας σε Selenium IDE, το ίδιο το IDE δημιουργεί μια αντίστοιχη μέθοδο αναμονής, επομένως doTextUpperCase παράγει επίσης τη συνάρτηση αναμονής κείμενομεκεφαλαίακαιπεριμένετεΗ μέθοδος μπορεί να δεχτεί δύο παραμέτρους.
Παράδειγμα: Ενέργεια με κεφαλαία γράμματα
Selenium.prototype.doTextUpperCase = function(locator, text) { // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text var element = this.page().findElement(locator); // Create the text to type text = text.toUpperCase(); // Replace the element text with the new text this.page().replaceText(element, text); };
Βήμα 2) Προσαρτήματα / Διεκδίκηση – όλοι οι εγγεγραμμένοι χρήστες πρόσβασης στο Selenium πρωτότυπο αντικειμένου έχουν πρόθεμα παίρνω or is, για παράδειγμα getValueFromCompoundTable ή isValueFromCompoundTable. Ένα accessor μπορεί να δεχτεί δύο παραμέτρους, μία για τον στόχο και μία για το πεδίο τιμών στην περίπτωση δοκιμής. Το παρακάτω στιγμιότυπο οθόνης δείχνει πώς εμφανίζονται αυτά τα προθέματα μόλις φορτωθεί η επέκταση.
Για κάθε εξάρτημα, Selenium Το IDE δημιουργεί τις αντίστοιχες συναρτήσεις επαλήθευσης με πρόθεμα επαληθεύει και διεκδικώ, συν μια συνάρτηση αναμονής με πρόθεμα περίμενεΓια.
Παράδειγμα: Για κεφαλαία γράμματα σε προσαρτήματα κειμένου
Selenium.prototype.assertTextUpperCase = function(locator, text) { // All locator-strategies are automatically handled by "findElement" var element = this.page().findElement(locator); // Create the text to verify text = text.toUpperCase(); // Get the actual element value var actualValue = element.value; // Make sure the actual value matches the expected Assert.matches(expectedValue, actualValue); }; Selenium.prototype.isTextEqual = function(locator, text) { return this.getText(locator).value===text; }; Selenium.prototype.getTextValue = function(locator, text) { return this.getText(locator).value; };
Βήμα 3) Στρατηγική εντοπισμού – αν θέλετε να δημιουργήσετε τη δική σας συνάρτηση για να εντοπίσετε ένα στοιχείο, επεκτείνετε το πρωτότυπο PageBot με μια συνάρτηση με πρόθεμα εντοπισμός στοιχείου απόΛαμβάνει δύο παραμέτρους: τη συμβολοσειρά εντοπιστή και το έγγραφο στο οποίο θα πρέπει να αναζητηθεί το στοιχείο.
Παράδειγμα: Για τον εντοπισμό κεφαλαίων κειμένων
// The "inDocument" is a document you are searching. PageBot.prototype.locateElementByUpperCase = function(text, inDocument) { // Create the text to search for var expectedValue = text.toUpperCase(); // Loop through all elements, looking for ones that have // a value === our expected value var allElements = inDocument.getElementsByTagName("*"); // This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element. for (var i = 0; i < allElements.length; i++) { var testElement = allElements[i]; if (testElement.innerHTML && testElement.innerHTML === expectedValue) { return testElement; } } return null; };
Αποθηκεύστε και τις τρεις συναρτήσεις σε ένα μόνο αρχείο με το όνομα user-extensions.jsΤο αρχείο είναι απλό JavaScript, επομένως οποιοσδήποτε επεξεργαστής κειμένου είναι επαρκής.
Πώς να χρησιμοποιήσετε την πρόσφατα δημιουργημένη επέκταση πυρήνα
Η φόρτωση του αρχείου είναι μια εργασία τεσσάρων βημάτων στο πρωτότυπο Firefox-plugin IDE. Κάθε στιγμιότυπο οθόνης παρακάτω αντιστοιχεί στο αριθμημένο βήμα δίπλα του.
- Πηγαίνετε στο Selenium IDE και κάντε κλικ Επιλογές -> Επιλογές…
- Στο Γενικός ενότητα, επιλέξτε την τοποθεσία του νεοδημιουργημένου Selenium Επέκταση πυρήνα.
- Πατήστε OK και επανεκκίνηση Selenium SDI.
- Θα βρείτε την επέκταση στη λίστα εντολών.
Selenium Βασικές επεκτάσεις vs Selenium Επεκτάσεις IDE
Οι δύο όροι χρησιμοποιούνται εναλλακτικά σε παλαιότερο υλικό, αλλά περιγράφουν διαφορετικά επίπεδα και η διάκριση έχει σημασία όταν αποφασίζετε πού να τοποθετήσετε την προσαρμοσμένη λογική.
| Άποψη | Selenium Επέκταση πυρήνα | Selenium Επέκταση IDE |
|---|---|---|
| Τι επεκτείνει | Η βιβλιοθήκη εντολών Selenese που χρησιμοποιείται κατά την αναπαραγωγή | Η ίδια η εφαρμογή IDE |
| Το αρχείο φορτώθηκε | user-extensions.js | user-extensions-ide.js στο παλαιό IDE, ένα μανιφέστο πρόσθετου στο τρέχον IDE |
| Τυπική χρήση | Νέες ενέργειες, προσβάσεις και στρατηγικές εντοπισμού | Νέα στοιχεία μενού, πίνακες, μορφές και συμπεριφορά συσκευής εγγραφής |
| Αντικείμενα που άγγιξαν | Selenium.prototype και PageBot.prototype | API επεξεργασίας και εγγραφής IDE |
| Εκτελείται κατά τη διάρκεια | Εκτέλεση δοκιμής | Συγγραφή και ηχογράφηση |
Με λίγα λόγια, μια επέκταση Core αλλάζει τι μπορεί να κάνει μια δοκιμή, ενώ μια επέκταση IDE αλλάζει τι μπορεί να κάνει το εργαλείο.
Πώς το Σύγχρονο Selenium Το IDE αντικαθιστά το user-extensions.js
The Firefox-πρόσθετο Selenium Το IDE σταμάτησε να λειτουργεί όταν Firefox μετακινήθηκε στην αρχιτεκτονική WebExtensions και το IDE ξαναγράφτηκε ως Chrome, Firefox και την επέκταση του προγράμματος περιήγησης Edge. Αυτή η επανεγγραφή αφαίρεσε το πεδίο Επιλογές που φαίνεται παραπάνω, επομένως δεν υπάρχει σημείο για να υποδείξετε ένα αρχείο user-extensions.js. Δύο υποστηριζόμενες εναλλακτικές λύσεις καλύπτουν το ίδιο πεδίο.
- Η εντολή εκτέλεσης σεναρίου. Για εφάπαξ χρήση JavaΣενάριο, προσθέστε ένα εκτέλεση σεναρίου or εκτέλεση ασύγχρονου σεναρίου προχωρήστε απευθείας στη δοκιμή και αποθηκεύστε το αποτέλεσμα σε μια μεταβλητή. Αυτό είναι το πλησιέστερο ισοδύναμο με μια μικρή προσαρμοσμένη ενέργεια.
- Ένα πρόσθετο (plugin). Για επαναχρησιμοποιήσιμες εντολές, δημιουργήστε μια επέκταση προγράμματος περιήγησης που καταχωρεί ένα μανιφέστο στο IDE. Το μανιφέστο δηλώνει κάθε νέα εντολή με ένα αναγνωριστικό, ένα όνομα, έναν προαιρετικό τύπο και τεκμηρίωση, και μπορεί επίσης να δηλώσει νέους εντοπιστές.
Η δήλωση καταχωρείται στέλνοντας ένα μήνυμα στην επέκταση IDE, όπως φαίνεται στην επίσημη Selenium Τεκμηρίωση πρόσθετου IDE.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
Η αρχή της ονοματοδοσίας επιβιώνει από τη μετεγκατάσταση: μια εντολή plugin εξακολουθεί να δηλώνεται μία φορά και στη συνέχεια επαναχρησιμοποιείται σε κάθε δοκιμή, ακριβώς όπως γινόταν με μια επέκταση Core.
Δημοφιλείς επεκτάσεις και πρόσθετα που χρησιμοποιούνται σε Selenium IDE
Τα παρακάτω πρόσθετα ήταν τα πιο ευρέως χρησιμοποιούμενα στο παλαιότερο IDE. Αρκετά από αυτά, όπως ο έλεγχος ροής και η λήψη στιγμιότυπου οθόνης σε περίπτωση αποτυχίας, είναι πλέον ενσωματωμένα στο τρέχον IDE ή διαθέσιμα ως συντηρούμενα πρόσθετα.
| Όνομα | Σκοπός |
|---|---|
| αγαπημένα | Για να επισημάνετε μια σουίτα δοκιμών ως αγαπημένη και να την εκτελέσετε με ένα κλικ |
| Flex Pilot X | Για αυτοματισμούς με βάση το Flex |
| FlexMonkium | Για εγγραφή και αναπαραγωγή βάσει Adobe Flex δοκιμών in Selenium IDE |
| Καταγραφή αρχείων | Για αποθήκευση αρχείων καταγραφής σε αρχείο |
| Έλεγχος ροής | Για τον έλεγχο της ροής εκτέλεσης της δοκιμής |
| Επισημάνετε στοιχεία | Για να επισημάνετε ένα στοιχείο ελέγχου ιστού |
| Σιωπηρή αναμονή | Να περιμένετε ένα στοιχείο για ένα συγκεκριμένο χρονικό όριο |
| Στιγμιότυπο οθόνης σε αποτυχία | Τραβήξτε ένα στιγμιότυπο οθόνης για την αποτυχία |
| Αποτελεσματα Εξετασεων | Αποθηκεύστε το περίπτωση δοκιμής αποτέλεσμα για μια δοκιμαστική σουίτα με ένα κλικ |
Η παλιά SeleniumΗ σελίδα λήψης HQ που φιλοξενούσε αυτά τα αρχεία δεν υπάρχει πλέον. Τα τρέχοντα πρόσθετα και το ίδιο το IDE διανέμονται από το Selenium Ιστότοπος έργου IDE και από το Chrome, Firefox και καταστήματα πρόσθετων υπηρεσιών Edge.
Κατεβάστε το Selenium Core Extension που χρησιμοποιείται σε αυτό το σεμινάριο









