XPath μέσα Selenium: Πώς να βρείτε και να γράψετε; (Κείμενο, Περιέχει, ΚΑΙ)

Σε τι είναι το XPath Selenium?

XPath μέσα Selenium είναι μια διαδρομή XML που χρησιμοποιείται για πλοήγηση στη δομή HTML της σελίδας. Είναι μια σύνταξη ή μια γλώσσα για την εύρεση οποιουδήποτε στοιχείου σε μια ιστοσελίδα χρησιμοποιώντας έκφραση διαδρομής XML. Το XPath μπορεί να χρησιμοποιηθεί τόσο για έγγραφα HTML όσο και για έγγραφα XML για την εύρεση της θέσης οποιουδήποτε στοιχείου σε μια ιστοσελίδα χρησιμοποιώντας τη δομή HTML DOM.

In Selenium αυτοματοποίηση, εάν τα στοιχεία δεν βρεθούν από τους γενικούς εντοπιστές όπως id, class, name, κ.λπ. τότε το XPath χρησιμοποιείται για την εύρεση ενός στοιχείου στην ιστοσελίδα.

Σε αυτό το σεμινάριο, θα μάθουμε για την έκφραση Xpath και τη διαφορετική έκφραση XPath για να βρούμε το complex ή δυναμικά στοιχεία, των οποίων τα χαρακτηριστικά αλλάζουν δυναμικά κατά την ανανέωση ή οποιοδήποτε άλλο operaσεις.

Σύνταξη XPath

Το XPath περιέχει τη διαδρομή του στοιχείου που βρίσκεται στην ιστοσελίδα. Η τυπική σύνταξη XPath για τη δημιουργία XPath είναι.

Xpath=//tagname[@attribute='value']

Η βασική μορφή του XPath σε selenium εξηγείται παρακάτω με το στιγμιότυπο οθόνης.

Σύνταξη XPath
Βασική μορφή του XPath
  • // : Επιλέξτε τον τρέχοντα κόμβο.
  • Όνομα ετικέτας: Όνομα ετικέτας του συγκεκριμένου κόμβου.
  • @: Επιλέξτε χαρακτηριστικό.
  • Χαρακτηριστικό: Όνομα χαρακτηριστικού του κόμβου.
  • Αξία: Τιμή της ιδιότητας.

Για να βρείτε το στοιχείο με ακρίβεια στις ιστοσελίδες υπάρχουν διάφοροι τύποι εντοπιστών:

XPath Locators Βρείτε διαφορετικά στοιχεία στην ιστοσελίδα
ID Για να βρείτε το στοιχείο κατά ID του στοιχείου
Ονομα τάξης Για να βρείτε το στοιχείο κατά Όνομα κλάσης του στοιχείου
Όνομα Για να βρείτε το στοιχείο με το όνομα του στοιχείου
Κείμενο συνδέσμου Για να βρείτε το στοιχείο κατά κείμενο του συνδέσμου
XPath XPath που απαιτείται για την εύρεση του δυναμικού στοιχείου και τη διέλευση μεταξύ διαφόρων στοιχείων της ιστοσελίδας
Διαδρομή CSS Η διαδρομή CSS εντοπίζει επίσης στοιχεία που δεν έχουν όνομα, κλάση ή αναγνωριστικό.

Τύποι διαδρομής Χ

Υπάρχουν δύο τύποι XPath:

1) Απόλυτο XPath

2) Σχετικό XPath

Απόλυτο XPath

Είναι ο άμεσος τρόπος για να βρείτε το στοιχείο, αλλά το μειονέκτημα του απόλυτου XPath είναι ότι εάν γίνουν αλλαγές στη διαδρομή του στοιχείου, τότε αυτό το XPath αποτυγχάνει.

Το βασικό χαρακτηριστικό του XPath είναι ότι ξεκινά με τη μονή κάθετο προς τα εμπρός(/), που σημαίνει ότι μπορείτε να επιλέξετε το στοιχείο από τον ριζικό κόμβο.

Παρακάτω είναι το παράδειγμα μιας απόλυτης έκφρασης Xpath του στοιχείου που εμφανίζεται στην παρακάτω οθόνη.

ΣΗΜΕΙΩΣΗ: Μπορείτε να εξασκηθείτε στο following Άσκηση 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

Σχετικό Xpath

Σχετικό Xpath ξεκινά από τη μέση της δομής HTML DOM. Ξεκινά με double κάθετο προς τα εμπρός (//). Μπορεί να αναζητήσει στοιχεία οπουδήποτε στην ιστοσελίδα, σημαίνει ότι δεν χρειάζεται να γράψετε ένα μεγάλο xpath και μπορείτε να ξεκινήσετε από τη μέση της δομής HTML DOM. Το σχετικό Xpath προτιμάται πάντα καθώς δεν είναι μια πλήρης διαδρομή από το ριζικό στοιχείο.

Παρακάτω είναι το παράδειγμα μιας σχετικής έκφρασης XPath του ίδιου στοιχείου που εμφανίζεται στην παρακάτω οθόνη. Αυτή είναι η κοινή μορφή που χρησιμοποιείται για την εύρεση στοιχείων από το XPath.

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]

Σχετικό XPath

Σχετικό XPath

Τι είναι οι άξονες XPath.

Οι άξονες XPath αναζητούν διαφορετικούς κόμβους σε έγγραφο XML από τον τρέχοντα κόμβο περιβάλλοντος. Οι άξονες XPath είναι οι μέθοδοι που χρησιμοποιούνται για την εύρεση δυναμικών στοιχείων, ποιες άλλεςwise δεν είναι δυνατό με την κανονική μέθοδο XPath που δεν έχει ID , Όνομα κλάσης, Όνομα κ.λπ.

Οι μέθοδοι αξόνων χρησιμοποιούνται για την εύρεση αυτών των στοιχείων, τα οποία αλλάζουν δυναμικά κατά την ανανέωση ή οποιοδήποτε άλλο operaθέσεις. Υπάρχουν λίγες μέθοδοι αξόνων που χρησιμοποιούνται συνήθως σε 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

Μερικές ακόμη βασικές εκφράσεις 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".

Χρήση OR & AND

Στην έκφραση AND, χρησιμοποιούνται δύο συνθήκες, και οι δύο συνθήκες θα πρέπει να είναι αληθείς για να βρεθεί το στοιχείο. Αποτυγχάνει να βρει το στοιχείο εάν κάποια συνθήκη είναι ψευδής.

Xpath=//input[@type='submit' and @name='btnLogin']

Στην παρακάτω έκφραση, επισημαίνοντας το στοιχείο "LOGIN" καθώς έχει και το χαρακτηριστικό "type" και "name".

Χρήση OR & AND

4) Xpath Starts-with

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

Για παράδειγμα -: Ας υποθέσουμε ότι το αναγνωριστικό ενός συγκεκριμένου στοιχείου αλλάζει δυναμικά όπως:

ID=” message12″

ID=” message345″

ID=” message8769″

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

Στην παρακάτω έκφραση, υπάρχουν δύο στοιχεία με ένα αναγνωριστικό που ξεκινά "μήνυμα" (δηλαδή, το 'User-ID δεν πρέπει να είναι κενό' & 'Ο κωδικός πρόσβασης δεν πρέπει να είναι κενό'). Στο παρακάτω παράδειγμα, το XPath βρίσκει εκείνα τα στοιχεία των οποίων το "ID" αρχίζει με "μήνυμα".

Xpath=//label[starts-with(@id,'message')]

Το Xpath ξεκινά με

5) Λειτουργία XPath Text().

Η Λειτουργία XPath text(). είναι μια ενσωματωμένη λειτουργία του selenium webdriver που χρησιμοποιείται για τον εντοπισμό στοιχείων με βάση το κείμενο ενός στοιχείου web. Βοηθά στην εύρεση των ακριβών στοιχείων κειμένου και εντοπίζει τα στοιχεία μέσα στο σύνολο των κόμβων κειμένου. Τα στοιχεία που θα εντοπιστούν θα πρέπει να είναι σε μορφή συμβολοσειράς.

Σε αυτήν την έκφραση, με τη συνάρτηση κειμένου, βρίσκουμε το στοιχείο με ακριβή αντιστοίχιση κειμένου όπως φαίνεται παρακάτω. Στην περίπτωσή μας, βρίσκουμε το στοιχείο με κείμενο "UserID".

Xpath=//td[text()='UserID']

Λειτουργία XPath Text().

Μέθοδοι αξόνων XPath

Αυτές οι μέθοδοι αξόνων XPath χρησιμοποιούνται για την εύρεση του complex ή δυναμικά στοιχεία. Παρακάτω θα δούμε μερικές από αυτές τις μεθόδους.

Για την απεικόνιση αυτής της μεθόδου αξόνων XPath, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης τράπεζας Guru99.

1) Ακολούθησεwing

Επιλέγει όλα τα στοιχεία στο έγγραφο του τρέχοντος κόμβου( ) [ Είσοδος UserID box είναι ο τρέχων κόμβος] όπως φαίνεται στην παρακάτω οθόνη.

Xpath=//*[@type='text']//following::input

ακολουθείτε

Υπάρχουν 3 κόμβοι "εισόδου" που ταιριάζουν χρησιμοποιώντας το "followingΆξονας - κουμπί κωδικού πρόσβασης, σύνδεσης και επαναφοράς. Εάν θέλετε να εστιάσετε σε οποιοδήποτε συγκεκριμένο στοιχείο, μπορείτε να χρησιμοποιήσετε την παρακάτω μέθοδο XPath:

Xpath=//*[@type='text']//following::input[1]

Μπορείτε να αλλάξετε το XPath σύμφωνα με την απαίτηση βάζοντας [1],[2]…………και ούτω καθεξής.

Με την είσοδο ως "1", το παρακάτω στιγμιότυπο οθόνης βρίσκει τον συγκεκριμένο κόμβο που είναι η είσοδος "Κωδικός πρόσβασης" box στοιχείο.

ακολουθείτε

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) Ακολούθησεwing-αμφιθαλής αδελφός

Επιλέξτε το ακόλουθοwing αδέρφια του κόμβου περιβάλλοντος. Τα αδέρφια βρίσκονται στο ίδιο επίπεδο του τρέχοντος κόμβου όπως φαίνεται στην παρακάτω οθόνη. Θα βρει το στοιχείο μετά τον τρέχοντα κόμβο.

xpath=//*[@type='submit']//following-sibling::input

Following-αμφιθαλής αδελφός

Ένας κόμβος εισόδου ταιριάζει με τη χρήση του "followingάξονας -αδερφού.

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 απαιτείται για την εύρεση ενός στοιχείου στην ιστοσελίδα όπως για να γίνει ένα operaγια το συγκεκριμένο στοιχείο.

  • Υπάρχουν δύο τύποι selenium XPath:
    • Απόλυτο XPath
    • Σχετικό XPath
  • Οι άξονες XPath είναι οι μέθοδοι που χρησιμοποιούνται για την εύρεση δυναμικών στοιχείων, ποιες άλλεςwise δεν είναι δυνατό να βρεθεί με την κανονική μέθοδο XPath
  • Η έκφραση XPath επιλέξτε κόμβους ή λίστα κόμβων με βάση χαρακτηριστικά όπως ID , Όνομα, Όνομα κλάσης κ.λπ. από το έγγραφο XML .

Ελέγξτε επίσης: - Selenium Οδηγός για αρχάριους: Μάθετε WebDriver σε 7 ημέρες