XPath μέσα Selenium: Πώς να βρείτε και να γράψετε; (Κείμενο, Περιέχει, ΚΑΙ)
Σε τι είναι το XPath Selenium?
XPath μέσα Selenium είναι μια διαδρομή XML που χρησιμοποιείται για πλοήγηση στη δομή HTML της σελίδας. Είναι μια σύνταξη ή μια γλώσσα για την εύρεση οποιουδήποτε στοιχείου σε μια ιστοσελίδα χρησιμοποιώντας έκφραση διαδρομής XML. Το XPath μπορεί να χρησιμοποιηθεί τόσο για έγγραφα HTML όσο και για έγγραφα XML για την εύρεση της θέσης οποιουδήποτε στοιχείου σε μια ιστοσελίδα χρησιμοποιώντας τη δομή HTML DOM.
In Selenium αυτοματοποίηση, εάν τα στοιχεία δεν βρεθούν από τους γενικούς εντοπιστές όπως id, class, name, κ.λπ. τότε το XPath χρησιμοποιείται για την εύρεση ενός στοιχείου στην ιστοσελίδα.
Σε αυτό το σεμινάριο, θα μάθουμε για την έκφραση Xpath και τη διαφορετική έκφραση XPath για να βρούμε τα πολύπλοκα ή δυναμικά στοιχεία, των οποίων τα χαρακτηριστικά αλλάζουν δυναμικά κατά την ανανέωση ή οποιαδήποτε λειτουργία.
Σύνταξη XPath
Το XPath περιέχει τη διαδρομή του στοιχείου που βρίσκεται στην ιστοσελίδα. Η τυπική σύνταξη XPath για τη δημιουργία XPath είναι.
Xpath=//tagname[@attribute='value']
Η βασική μορφή του XPath σε σελήνιο εξηγείται παρακάτω με στιγμιότυπο οθόνης.
- // : Επιλέξτε τον τρέχοντα κόμβο.
- Όνομα ετικέτας: Όνομα ετικέτας του συγκεκριμένου κόμβου.
- @: Επιλέξτε χαρακτηριστικό.
- Χαρακτηριστικό: Όνομα χαρακτηριστικού του κόμβου.
- Αξία: Τιμή της ιδιότητας.
Για να βρείτε το στοιχείο με ακρίβεια στις ιστοσελίδες υπάρχουν διάφοροι τύποι εντοπιστών:
XPath Locators | Βρείτε διαφορετικά στοιχεία στην ιστοσελίδα |
---|---|
ID | Για να βρείτε το στοιχείο κατά ID του στοιχείου |
Ονομα τάξης | Για να βρείτε το στοιχείο κατά Όνομα κλάσης του στοιχείου |
Όνομα | Για να βρείτε το στοιχείο με το όνομα του στοιχείου |
Κείμενο συνδέσμου | Για να βρείτε το στοιχείο κατά κείμενο του συνδέσμου |
XPath | XPath που απαιτείται για την εύρεση του δυναμικού στοιχείου και τη διέλευση μεταξύ διαφόρων στοιχείων της ιστοσελίδας |
Διαδρομή CSS | Η διαδρομή CSS εντοπίζει επίσης στοιχεία που δεν έχουν όνομα, κλάση ή αναγνωριστικό. |
Τύποι διαδρομής Χ
Υπάρχουν δύο τύποι XPath:
1) Απόλυτο XPath
2) Σχετικό XPath
Απόλυτο XPath
Είναι ο άμεσος τρόπος για να βρείτε το στοιχείο, αλλά το μειονέκτημα του απόλυτου XPath είναι ότι εάν γίνουν αλλαγές στη διαδρομή του στοιχείου, τότε αυτό το XPath αποτυγχάνει.
Το βασικό χαρακτηριστικό του XPath είναι ότι ξεκινά με τη μονή κάθετο προς τα εμπρός(/), που σημαίνει ότι μπορείτε να επιλέξετε το στοιχείο από τον ριζικό κόμβο.
Παρακάτω είναι το παράδειγμα μιας απόλυτης έκφρασης Xpath του στοιχείου που εμφανίζεται στην παρακάτω οθόνη.
ΣΗΜΕΙΩΣΗ: Μπορείτε να εξασκηθείτε στην ακόλουθη άσκηση XPath σε αυτό http://demo.guru99.com/test/selenium-xpath.html
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Απόλυτο XPath:
/html/body/div[2]/div[1]/div/h4[1]/b/html[1]/body[1]/div[2]/div[1]/div[1]/h4[1]/b[1]
Σχετικό Xpath
Σχετικό Xpath ξεκινά από τη μέση της δομής HTML DOM. Ξεκινά με διπλή κάθετο προς τα εμπρός (//). Μπορεί να αναζητήσει στοιχεία οπουδήποτε στην ιστοσελίδα, σημαίνει ότι δεν χρειάζεται να γράψετε ένα μεγάλο xpath και μπορείτε να ξεκινήσετε από τη μέση της δομής HTML DOM. Το σχετικό Xpath προτιμάται πάντα καθώς δεν είναι μια πλήρης διαδρομή από το ριζικό στοιχείο.
Παρακάτω είναι το παράδειγμα μιας σχετικής έκφρασης XPath του ίδιου στοιχείου που εμφανίζεται στην παρακάτω οθόνη. Αυτή είναι η κοινή μορφή που χρησιμοποιείται για την εύρεση στοιχείων από το XPath.
Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο
Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]
Τι είναι οι άξονες XPath.
Οι άξονες XPath αναζητούν διαφορετικούς κόμβους σε έγγραφο XML από τον τρέχοντα κόμβο περιβάλλοντος. Οι άξονες XPath είναι οι μέθοδοι που χρησιμοποιούνται για την εύρεση δυναμικών στοιχείων, κάτι που διαφορετικά δεν είναι δυνατό με την κανονική μέθοδο XPath που δεν έχει ID , Όνομα κλάσης, Όνομα κ.λπ.
Οι μέθοδοι αξόνων χρησιμοποιούνται για την εύρεση αυτών των στοιχείων, τα οποία αλλάζουν δυναμικά κατά την ανανέωση ή οποιεσδήποτε άλλες λειτουργίες. Υπάρχουν λίγες μέθοδοι αξόνων που χρησιμοποιούνται συνήθως σε Selenium Πρόγραμμα οδήγησης Web όπως παιδί, γονέας, πρόγονος, αδερφός, προηγούμενος, εαυτός κ.λπ.
Πώς να γράψετε το Dynamic XPath In Selenium Πρόγραμμα οδήγησης Web
1) Βασικό XPath
Η έκφραση XPath επιλέξτε κόμβους ή λίστα κόμβων με βάση χαρακτηριστικά όπως ID , Όνομα, Όνομα τάξης, κ.λπ. από το έγγραφο XML όπως φαίνεται παρακάτω.
Xpath=//input[@name='uid']
Εδώ είναι ένας σύνδεσμος για πρόσβαση στη σελίδα http://demo.guru99.com/test/selenium-xpath.html
Μερικές ακόμη βασικές εκφράσεις xpath:
Xpath=//input[@type='text'] Xpath=//label[@id='message23'] Xpath=//input[@value='RESET'] Xpath=//*[@class='barone'] Xpath=//a[@href='http://demo.guru99.com/'] Xpath=//img[@src='//guru99.com/images/home/java.png']
2) Περιέχει()
Η Contains() είναι μια μέθοδος που χρησιμοποιείται στην έκφραση XPath. Χρησιμοποιείται όταν η τιμή οποιουδήποτε χαρακτηριστικού αλλάζει δυναμικά, για παράδειγμα, πληροφορίες σύνδεσης.
Η δυνατότητα Contain έχει τη δυνατότητα να βρει το στοιχείο με μερικό κείμενο όπως φαίνεται στο παρακάτω παράδειγμα XPath.
Σε αυτό το παράδειγμα, προσπαθήσαμε να αναγνωρίσουμε το στοιχείο χρησιμοποιώντας απλώς μερική τιμή κειμένου του χαρακτηριστικού. Στην παρακάτω έκφραση XPath χρησιμοποιείται μερική τιμή 'sub' στη θέση του κουμπιού υποβολής. Μπορεί να παρατηρηθεί ότι το στοιχείο βρέθηκε με επιτυχία.
Η πλήρης τιμή του 'Type' είναι 'submit' αλλά χρησιμοποιεί μόνο μερική τιμή 'sub'.
Xpath=//*[contains(@type,'sub')]
Η πλήρης τιμή του 'name' είναι 'btnLogin' αλλά χρησιμοποιεί μόνο μερική τιμή 'btn'.
Xpath=//*[contains(@name,'btn')]
Στην παραπάνω έκφραση, έχουμε λάβει το 'όνομα' ως χαρακτηριστικό και το 'btn' ως μερική τιμή, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Αυτό θα βρει 2 στοιχεία (ΣΥΝΔΕΣΗ & ΕΠΑΝΑΦΟΡΑ) καθώς το χαρακτηριστικό τους «όνομα» ξεκινά με «btn».
Ομοίως, στην παρακάτω έκφραση, έχουμε λάβει το 'id' ως χαρακτηριστικό και το 'message' ως μερική τιμή. Αυτό θα βρει 2 στοιχεία (το 'User-ID δεν πρέπει να είναι κενό' & 'Ο κωδικός πρόσβασης δεν πρέπει να είναι κενό') καθώς το χαρακτηριστικό του 'id' αρχίζει με 'message'.
Xpath=//*[contains(@id,'message')]
Στην παρακάτω έκφραση, έχουμε λάβει το «κείμενο» του συνδέσμου ως χαρακτηριστικό και το «εδώ» ως μερική τιμή, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Αυτό θα βρει τον σύνδεσμο ('εδώ') καθώς εμφανίζει το κείμενο 'εδώ'.
Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]
3) Χρήση OR & AND
Στην έκφραση OR, χρησιμοποιούνται δύο συνθήκες, είτε η 1η συνθήκη είτε η 2η συνθήκη θα πρέπει να είναι αληθής. Ισχύει επίσης εάν ισχύει κάποια συνθήκη ή ίσως και οι δύο. Σημαίνει ότι οποιαδήποτε συνθήκη πρέπει να είναι αληθής για να βρεθεί το στοιχείο.
Στην παρακάτω έκφραση XPath, προσδιορίζει τα στοιχεία των οποίων η μοναδική ή και οι δύο συνθήκες είναι αληθείς.
Xpath=//*[@type='submit' or @name='btnReset']
Επισήμανση και των δύο στοιχείων ως στοιχείο "LOGIN" με χαρακτηριστικό "type" και στοιχείο "RESET" με χαρακτηριστικό "name".
Στην έκφραση AND, χρησιμοποιούνται δύο συνθήκες, και οι δύο συνθήκες θα πρέπει να είναι αληθείς για να βρεθεί το στοιχείο. Αποτυγχάνει να βρει το στοιχείο εάν κάποια συνθήκη είναι ψευδής.
Xpath=//input[@type='submit' and @name='btnLogin']
Στην παρακάτω έκφραση, επισημαίνοντας το στοιχείο "LOGIN" καθώς έχει και το χαρακτηριστικό "type" και "name".
4) Xpath Starts-with
Το XPath ξεκινά με () είναι μια συνάρτηση που χρησιμοποιείται για την εύρεση του στοιχείου Ιστού του οποίου η τιμή χαρακτηριστικού αλλάζει κατά την ανανέωση ή με άλλες δυναμικές λειτουργίες στην ιστοσελίδα. Σε αυτή τη μέθοδο, το αρχικό κείμενο του χαρακτηριστικού αντιστοιχίζεται για να βρεθεί το στοιχείο του οποίου η τιμή του χαρακτηριστικού αλλάζει δυναμικά. Μπορείτε επίσης να βρείτε στοιχεία των οποίων η τιμή χαρακτηριστικού είναι στατική (όχι αλλάζει).
Για παράδειγμα -: Ας υποθέσουμε ότι το αναγνωριστικό ενός συγκεκριμένου στοιχείου αλλάζει δυναμικά όπως:
ID=” message12″
ID=” message345″
ID=” message8769″
και ούτω καθεξής.. αλλά το αρχικό κείμενο είναι το ίδιο. Σε αυτήν την περίπτωση, χρησιμοποιούμε την έκφραση Start-with.
Στην παρακάτω έκφραση, υπάρχουν δύο στοιχεία με ένα αναγνωριστικό που ξεκινά "μήνυμα" (δηλαδή, το 'User-ID δεν πρέπει να είναι κενό' & 'Ο κωδικός πρόσβασης δεν πρέπει να είναι κενό'). Στο παρακάτω παράδειγμα, το XPath βρίσκει εκείνα τα στοιχεία των οποίων το "ID" αρχίζει με "μήνυμα".
Xpath=//label[starts-with(@id,'message')]
5) Λειτουργία XPath Text().
Τα Διαχωριστικά Λειτουργία XPath text(). είναι μια ενσωματωμένη λειτουργία του προγράμματος οδήγησης web selenium που χρησιμοποιείται για τον εντοπισμό στοιχείων με βάση το κείμενο ενός στοιχείου ιστού. Βοηθά στην εύρεση των ακριβών στοιχείων κειμένου και εντοπίζει τα στοιχεία μέσα στο σύνολο των κόμβων κειμένου. Τα στοιχεία που θα εντοπιστούν θα πρέπει να είναι σε μορφή συμβολοσειράς.
Σε αυτήν την έκφραση, με τη συνάρτηση κειμένου, βρίσκουμε το στοιχείο με ακριβή αντιστοίχιση κειμένου όπως φαίνεται παρακάτω. Στην περίπτωσή μας, βρίσκουμε το στοιχείο με κείμενο "UserID".
Xpath=//td[text()='UserID']
Μέθοδοι αξόνων XPath
Αυτές οι μέθοδοι αξόνων XPath χρησιμοποιούνται για την εύρεση σύνθετων ή δυναμικών στοιχείων. Παρακάτω θα δούμε μερικές από αυτές τις μεθόδους.
Για την απεικόνιση αυτής της μεθόδου αξόνων XPath, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης τράπεζας Guru99.
1) Ακολουθώντας
Επιλέγει όλα τα στοιχεία στο έγγραφο του τρέχοντος κόμβου( ) [Το πλαίσιο εισαγωγής UserID είναι ο τρέχων κόμβος] όπως φαίνεται στην παρακάτω οθόνη.
Xpath=//*[@type='text']//following::input
Υπάρχουν 3 κόμβοι «εισόδου» που ταιριάζουν χρησιμοποιώντας τον «ακολουθώντας» άξονα- κωδικό πρόσβασης, σύνδεση και κουμπί επαναφοράς. Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε την παρακάτω μέθοδο XPath:
Xpath=//*[@type='text']//following::input[1]
Μπορείτε να αλλάξετε το XPath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.
Με την είσοδο ως «1», το παρακάτω στιγμιότυπο οθόνης βρίσκει τον συγκεκριμένο κόμβο που είναι το στοιχείο του πλαισίου εισαγωγής «Κωδικός πρόσβασης».
2) Πρόγονος
Ο άξονας των προγόνων επιλέγει όλα τα στοιχεία των προγόνων (παππού, γονέα, κ.λπ.) του τρέχοντος κόμβου όπως φαίνεται στην παρακάτω οθόνη.
Στην παρακάτω έκφραση, βρίσκουμε το στοιχείο προγόνων του τρέχοντος κόμβου (κόμβος «ENTERPRISE TESTING»).
Xpath=//*[text()='Enterprise Testing']//ancestor::div
Υπάρχουν 13 κόμβοι "div" που ταιριάζουν χρησιμοποιώντας τον άξονα "πρόγονος". Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε το παρακάτω XPath, όπου αλλάζετε τον αριθμό 1, 2 σύμφωνα με τις απαιτήσεις σας:
Xpath=//*[text()='Enterprise Testing']//ancestor::div[1]
Μπορείτε να αλλάξετε το XPath σύμφωνα με την απαίτηση βάζοντας τα [1], [2]…………και ούτω καθεξής.
3) Παιδί
Επιλέγει όλα τα θυγατρικά στοιχεία του τρέχοντος κόμβου (Java) όπως φαίνεται στην παρακάτω οθόνη.
Xpath=//*[@id='java_technologies']//child::li
Υπάρχουν 71 κόμβοι "li" που ταιριάζουν χρησιμοποιώντας τον άξονα "παιδί". Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε το παρακάτω xpath:
Xpath=//*[@id='java_technologies']//child::li[1]
Μπορείτε να αλλάξετε το xpath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.
4) Προηγούμενο
Επιλέξτε όλους τους κόμβους που βρίσκονται πριν από τον τρέχοντα κόμβο, όπως φαίνεται στην παρακάτω οθόνη.
Στην παρακάτω έκφραση, προσδιορίζει όλα τα στοιχεία εισαγωγής πριν από το κουμπί «LOGIN» δηλαδή Ταυτότητα χρήστη και κωδικό πρόσβασης στοιχείο εισόδου.
Xpath=//*[@type='submit']//preceding::input
Υπάρχουν 2 κόμβοι «εισόδου» που ταιριάζουν χρησιμοποιώντας τον «προηγούμενο» άξονα. Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε το παρακάτω XPath:
Xpath=//*[@type='submit']//preceding::input[1]
Μπορείτε να αλλάξετε το xpath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.
5) Ακολουθώντας-αδερφάκι
Επιλέξτε τα ακόλουθα αδέρφια του κόμβου περιβάλλοντος. Τα αδέρφια βρίσκονται στο ίδιο επίπεδο του τρέχοντος κόμβου όπως φαίνεται στην παρακάτω οθόνη. Θα βρει το στοιχείο μετά τον τρέχοντα κόμβο.
xpath=//*[@type='submit']//following-sibling::input
Ένας κόμβος εισόδου ταιριάζουν χρησιμοποιώντας τον άξονα "following-sibling".
6) Γονέας
Επιλέγει τον γονέα του τρέχοντος κόμβου όπως φαίνεται στην παρακάτω οθόνη.
Xpath=//*[@id='rt-feature']//parent::div
Υπάρχουν 65 κόμβοι "div" που ταιριάζουν χρησιμοποιώντας τον "γονικό" άξονα. Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε το παρακάτω XPath:
Xpath=//*[@id='rt-feature']//parent::div[1]
Μπορείτε να αλλάξετε το XPath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.
7) Εαυτός
Επιλέγει τον τρέχοντα κόμβο ή «self» σημαίνει ότι υποδεικνύει τον ίδιο τον κόμβο όπως φαίνεται στην παρακάτω οθόνη.
Ένας κόμβος ταιριάζει με τη χρήση του άξονα "self". Βρίσκει πάντα μόνο έναν κόμβο καθώς αντιπροσωπεύει αυτο-στοιχείο.
Xpath =//*[@type='password']//self::input
8) Απόγονος
Επιλέγει τους απογόνους του τρέχοντος κόμβου όπως φαίνεται στην παρακάτω οθόνη.
Στην παρακάτω έκφραση, προσδιορίζει όλους τους απογόνους των στοιχείων του τρέχοντος στοιχείου (στοιχείο πλαισίου "Κύριο σώμα περιβάλλοντος") που σημαίνει κάτω κάτω από τον κόμβο (θυγατρικός κόμβος , κόμβος εγγονού κ.λπ.).
Xpath=//*[@id='rt-feature']//descendant::a
Υπάρχουν 12 κόμβοι "σύνδεσης" που ταιριάζουν χρησιμοποιώντας τον άξονα "απόγονος". Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε το παρακάτω XPath:
Xpath=//*[@id='rt-feature']//descendant::a[1]
Μπορείτε να αλλάξετε το XPath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.
Σύνοψη
Το XPath απαιτείται για την εύρεση ενός στοιχείου στην ιστοσελίδα για να γίνει μια λειτουργία σε αυτό το συγκεκριμένο στοιχείο.
- Υπάρχουν δύο τύποι σεληνίου XPath:
- Απόλυτο XPath
- Σχετικό XPath
- Οι άξονες XPath είναι οι μέθοδοι που χρησιμοποιούνται για την εύρεση δυναμικών στοιχείων, τα οποία διαφορετικά δεν είναι δυνατό να βρεθούν με την κανονική μέθοδο XPath
- Η έκφραση XPath επιλέξτε κόμβους ή λίστα κόμβων με βάση χαρακτηριστικά όπως ID , Όνομα, Όνομα κλάσης κ.λπ. από το έγγραφο XML .
Ελέγξτε επίσης: - Selenium Οδηγός για αρχάριους: Μάθετε WebDriver σε 7 ημέρες