Το QTP χειρίζεται διάφορα συμβάντα ποντικιού fireEvent

Qtp Handles Various Mouse Events Fireevent



πράξη Ιστός δοκιμή Πότε, οι ετικέτες HTML στη σελίδα θα περιέχουν διάφορα συμβάντα: κλικ (onclick), διπλό κλικ (onDblClick), συγκέντρωση δρομέων (OnBlur), onchange, onfocus, onmousedown, onmouseup, onmouseover, onmouseout, onsubmit, onreset, onpropertychange κ.λπ. . Χρησιμοποιώντας QTP Κατά τη διάρκεια της εγγραφής, ορισμένα συμβάντα ενδέχεται να μην καταγράφονται. Προς το παρόν, μπορείτε να κάνετε ορισμένες ρυθμίσεις, QTP / εργαλεία / Διαμόρφωση εγγραφής συμβάντων Web / προσαρμοσμένες ρυθμίσεις / συμβάν / προσθήκη μπορεί να προσθέσει τα συμβάντα που θέλετε να εγγράψετε. Φυσικά, αυτό άρθρο Το θέμα δεν είναι το παραπάνω. Επιτρέψτε μου να περιγράψω πρώτα το πρόβλημά μου. Συνάντησα έναν έλεγχο λίστας στο έργο, το οποίο έγινε με το ligerUI. Κάντε διπλό κλικ σε μια γραμμή στη λίστα και το περιεχόμενο αυτής της γραμμής θα διαβαστεί και στη συνέχεια τα δεδομένα θα αντιστοιχιστούν σε άλλες ετικέτες στη σελίδα, συμπεριλαμβανομένων ορισμένων κρυφών πεδίων. . Πρώτα, όταν ηχογράφησα, διαπίστωσα ότι δεν ήταν δυνατή η εγγραφή του συμβάντος διπλού κλικ (η παραπάνω διαμόρφωση εγγραφής συμβάντων Web έχει οριστεί), επομένως χρησιμοποίησα εγγραφή χαμηλού επιπέδου και το συμβάν διπλού κλικ καταγράφηκε επιτυχώς. Στη συνέχεια, κατά την αναπαραγωγή, διαπιστώθηκε ότι το συμβάν διπλού κλικ δεν ήταν έγκυρο και όχι όπως αναμενόταν. Έκανα διπλό κλικ σε ένα στοιχείο και άλλα στοιχεία στη σελίδα πήραν την αξία του. Η πρώτη μου λειτουργία είναι, επειδή ξέρω ότι η λογική που εφαρμόζεται από ολόκληρη τη σελίδα είναι να αποκτήσω το μοναδικό αναγνωριστικό κάθε στοιχείου, να εκχωρήσω αυτήν την τιμή σε ένα κρυφό πεδίο της σελίδας και, στη συνέχεια, να ακολουθήσω θέσεις εργασίας Όλα μπορούν να προχωρήσουν ομαλά. Επειδή ο κρυμμένος τομέας εμπλέκεται εδώ, γνωρίζουμε ότι το QTP χρησιμοποιεί ένα μοντέλο αναγνώρισης αντικειμένων. Η συνείδηση ​​είναι ότι μπορεί να αναγνωρίσει μόνο αντικείμενα που βλέπει και εμφανίζονται στην επιφάνεια. Η μέθοδος του αντικειμένου DOM υιοθετείται εδώ. Το DOM λαμβάνει το αντικείμενο απευθείας από τον πηγαίο κώδικα (σελίδα HTML). Επομένως, διάφορα κρυφά πεδία στη σελίδα, διάφορα αντικείμενα που μπορούν να ληφθούν μέσω ετικετών, αναγνωριστικών, χαρακτηριστικών κ.λπ., μπορούν εύκολα να διαβαστούν στο QTP. Το αντικείμενο DOM είναι επίσης πολύ απλό, απλώς προσθέστε το. html tag ') και άλλες μέθοδοι απόκτησης αντικειμένων για να κάνουν ό, τι θέλουν στη σελίδα. Για παράδειγμα, εδώ, ο κώδικας εφαρμογής μου γίνεται:
1 σετ obj = Πρόγραμμα περιήγησης ('Πρόγραμμα περιήγησης'). Σελίδα ('Σελίδα'). Object.getElementById ('verifiedID') 2 obj.value = '0101002699'
Αυτή είναι απλώς μια επιφανειακή λύση στο πρόβλημα, αλλά η τιμή στη σελίδα όπου θα πρέπει να εμφανίζεται η σωστή τιμή παραμένει κενή. Δηλαδή, πρέπει να καταλάβουμε μια μέθοδο που μπορεί πραγματικά να λύσει το πρόβλημα. Τώρα έχουμε εισαγάγει τη μέθοδο fireevent. Το Fireevent είναι μια μέθοδος στο JS, το παρακάτω είναι μια εξήγηση από το MSDN Το αποτέλεσμα της εκτέλεσης fireevent είναι «ίσο με» που εκτελεί σχετικές λειτουργίες στο στοιχείο προορισμού. Μπορεί να προσομοιώσει όλα τα είδη λειτουργιών, συμπεριλαμβανομένου του κλικ, που αναφέρονται στην αρχή του άρθρου. Η λύση στο πρόβλημα που αντιμετώπισα παραπάνω είναι:
Set list = Browser ('Browser'). Page ('Page'). WebElement ('list'). Object list.document.getElementById ('maingrid4 | 2 | r1001'). Fireevent ('ondblclick')
Με αυτόν τον τρόπο, το πρόβλημα αναπαραγωγής του συμβάντος διπλού κλικ που ήθελα λύθηκε ομαλά.

Για το πιο πρόσφατο περιεχόμενο, ανατρέξτε στη σελίδα GitHub του συγγραφέα: http://qaseven.github.io/