Πώς να βρείτε στοιχεία με κείμενο με σελήνιο

How Find Element Text With Selenium



Ο εντοπισμός και η επιλογή στοιχείων από την ιστοσελίδα είναι το κλειδί για την απόξεση ιστού με το Selenium. Μπορείτε να επιλέξετε στοιχεία χρησιμοποιώντας όνομα ετικέτας, αναγνωριστικό, όνομα κλάσης, επιλογέα XPath, επιλογέα CSS κ.λπ. στο Selenium. Μπορείτε επίσης να επιλέξετε στοιχεία με συγκεκριμένο κείμενο με Σελήνιο. Αυτό είναι χρήσιμο για την εύκολη επιλογή συνδέσμων και κουμπιών από την ιστοσελίδα. Ακόμα κι αν αλλάξει η δομή της σελίδας, εφόσον το κείμενο του στοιχείου της ιστοσελίδας παραμένει το ίδιο, ο επιλογέας σας θα πρέπει να λειτουργεί μια χαρά. Αυτό είναι το πλεονέκτημα της επιλογής συνδέσμων και κουμπιών χρησιμοποιώντας κείμενο σε Σελήνιο.

Σε αυτό το άρθρο, θα σας δείξω πώς μπορείτε να εντοπίσετε και να επιλέξετε στοιχεία από ιστοσελίδες χρησιμοποιώντας κείμενο σε Σελήνιο με τη βιβλιοθήκη του Σελένιο python. Λοιπόν, ας ξεκινήσουμε.







Προαπαιτούμενα:

Για να δοκιμάσετε τις εντολές και τα παραδείγματα αυτού του άρθρου, πρέπει να έχετε:



  1. Μια διανομή Linux (κατά προτίμηση Ubuntu) εγκατεστημένη στον υπολογιστή σας.
  2. Python 3 εγκατεστημένο στον υπολογιστή σας.
  3. Το PIP 3 είναι εγκατεστημένο στον υπολογιστή σας.
  4. Πύθων virtualenv πακέτο εγκατεστημένο στον υπολογιστή σας.
  5. Τα προγράμματα περιήγησης Mozilla Firefox ή Google Chrome είναι εγκατεστημένα στον υπολογιστή σας.
  6. Πρέπει να γνωρίζετε πώς να εγκαταστήσετε το πρόγραμμα οδήγησης Firefox Gecko ή το πρόγραμμα οδήγησης Chrome Web.

Για την εκπλήρωση των απαιτήσεων 4, 5 και 6, διαβάστε το άρθρο μου Εισαγωγή στο σελήνιο στην Python 3 Το



Μπορείτε να βρείτε πολλά άρθρα για τα άλλα θέματα LinuxHint.com Το Φροντίστε να τα ελέγξετε αν χρειάζεστε βοήθεια.





Δημιουργία καταλόγου έργου:

Για να διατηρήσετε τα πάντα οργανωμένα, δημιουργήστε έναν νέο κατάλογο έργου selenium-text-select/ ως εξής:

$mkdir -pvσελήνιο-κείμενο-επιλογή/οδηγοί



Πλοηγηθείτε στο selenium-text-select/ κατάλογος έργου ως εξής:

$CDσελήνιο-κείμενο-επιλογή/

Δημιουργήστε ένα εικονικό περιβάλλον Python στον κατάλογο έργου ως εξής:

$virtualenv .venv

Ενεργοποιήστε το εικονικό περιβάλλον ως εξής:

$πηγή.venv/είμαι/θέτω εις ενέργειαν

Εγκαταστήστε τη βιβλιοθήκη Selenium Python χρησιμοποιώντας το PIP3 ως εξής:

$ pip3 εγκατάσταση σεληνίου

Κατεβάστε και εγκαταστήστε όλα τα απαιτούμενα προγράμματα οδήγησης ιστού στο οδηγοί/ κατάλογο του έργου. Έχω εξηγήσει τη διαδικασία λήψης και εγκατάστασης προγραμμάτων οδήγησης ιστού στο άρθρο μου Εισαγωγή στο σελήνιο στην Python 3 Το

Εύρεση στοιχείων ανά κείμενο:

Σε αυτήν την ενότητα, θα σας δείξω μερικά παραδείγματα εύρεσης και επιλογής στοιχείων ιστοσελίδας με κείμενο με τη βιβλιοθήκη Selenium Python.

Θα ξεκινήσω με το απλούστερο παράδειγμα επιλογής στοιχείων ιστοσελίδας με κείμενο, επιλογή συνδέσμων από την ιστοσελίδα.

Στη σελίδα σύνδεσης του facebook.com, έχουμε έναν σύνδεσμο Ξεχάσατε τον λογαριασμό; Όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης. Ας επιλέξουμε αυτόν τον σύνδεσμο με το Σελήνιο.

Δημιουργήστε ένα νέο σενάριο Python ex01.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών σε αυτό.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
απόσελήνιο.webdriverΤοκοινόςΤομε εισαγωγήΜε
από χρόνος εισαγωγήύπνος
πρόγραμμα περιήγησης=webdriver.Χρώμιο(εκτελέσιμη_διαδρομή='./drivers/chromedriver')
πρόγραμμα περιήγησης.παίρνω('https://www.facebook.com/')
ForgotAccountLink=πρόγραμμα περιήγησης.find_element(Με.XPATH, '
//*[text () = 'Ξεχάσατε τον λογαριασμό;'] '
)
ForgotAccountLink.send_keys(Κλειδιά.ΕΙΣΑΓΩ)

Μόλις τελειώσετε, αποθηκεύστε το ex01.py Python script.

Η γραμμή 1-4 εισάγει όλα τα απαιτούμενα στοιχεία στο πρόγραμμα Python.

Η γραμμή 6 δημιουργεί ένα Chrome πρόγραμμα περιήγησης αντικείμενο χρησιμοποιώντας το chromedriver δυαδικό από το οδηγοί/ κατάλογο του έργου.

Η γραμμή 8 λέει στο πρόγραμμα περιήγησης να φορτώσει τον ιστότοπο facebook.com.

Η γραμμή 10 βρίσκει τον σύνδεσμο που περιέχει το κείμενο Ξεχάσατε τον λογαριασμό; Χρήση επιλογέα XPath. Για αυτό, έχω χρησιμοποιήσει τον επιλογέα XPath //*[text () = ‘Ξεχάσατε τον λογαριασμό;’] Το

Ο επιλογέας XPath ξεκινά με //, που σημαίνει ότι το στοιχείο μπορεί να βρίσκεται οπουδήποτε στη σελίδα. ο * το σύμβολο λέει στο Σελήνιο να επιλέξει οποιαδήποτε ετικέτα ( προς το ή Π ή σπιθαμή, κλπ.) που ταιριάζει με την κατάσταση μέσα στις τετράγωνες αγκύλες [] Το Εδώ, η συνθήκη είναι ότι το κείμενο του στοιχείου είναι ίσο με το Ξεχάσατε τον λογαριασμό;

ο κείμενο() Η συνάρτηση XPath χρησιμοποιείται για τη λήψη του κειμένου ενός στοιχείου.

Για παράδειγμα, κείμενο() επιστρέφει Γειά σου Κόσμε αν επιλέξει το ακόλουθο στοιχείο HTML.

< προς το href='http://dummysite.com'>>Γειά σου Κόσμε</ προς το >>

Η γραμμή 11 στέλνει το πατήστε το πλήκτρο στο Ξεχάσατε τον λογαριασμό; Σύνδεσμος.

Εκτελέστε το σενάριο Python ex01.py με την ακόλουθη εντολή:

$ python ex01.py

Όπως μπορείτε να δείτε, το πρόγραμμα περιήγησης ιστού βρίσκει, επιλέγει και πατάει το κλειδί στο Ξεχάσατε τον λογαριασμό; Σύνδεσμος.

ο Ξεχάσατε τον λογαριασμό; Ο σύνδεσμος μεταφέρει το πρόγραμμα περιήγησης στην ακόλουθη σελίδα.

Με τον ίδιο τρόπο, μπορείτε εύκολα να αναζητήσετε στοιχεία που έχουν την επιθυμητή τιμή χαρακτηριστικού.

Εδώ, το Σύνδεση το κουμπί είναι ένα εισαγωγή στοιχείο που έχει το αξία Χαρακτηριστικό Σύνδεση Το Ας δούμε πώς να επιλέξετε αυτό το στοιχείο με κείμενο.

Δημιουργήστε ένα νέο σενάριο Python ex02.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών σε αυτό.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
απόσελήνιο.webdriverΤοκοινόςΤομε εισαγωγήΜε
από χρόνος εισαγωγήύπνος
πρόγραμμα περιήγησης=webdriver.Χρώμιο(εκτελέσιμη_διαδρομή='./drivers/chromedriver')
πρόγραμμα περιήγησης.παίρνω('https://www.facebook.com/')
ύπνος(5)
emailInput=πρόγραμμα περιήγησης.find_element(Με.XPATH, '// εισαγωγή [@id =' email '] ')
passwordInput=πρόγραμμα περιήγησης.find_element(Με.XPATH, '// εισαγωγή [@id =' pass '] ')
loginButton=πρόγραμμα περιήγησης.find_element(Με.XPATH, '//*[@value =' Σύνδεση '] ')
emailInput.send_keys('[email protected]')
ύπνος(5)
passwordInput.send_keys(«μυστικό πάσο»)
ύπνος(5)
loginButton.send_keys(Κλειδιά.ΕΙΣΑΓΩ)

Μόλις τελειώσετε, αποθηκεύστε το ex02.py Python script.

Η γραμμή 1-4 εισάγει όλα τα απαιτούμενα στοιχεία.

Η γραμμή 6 δημιουργεί ένα Chrome πρόγραμμα περιήγησης αντικείμενο χρησιμοποιώντας το chromedriver δυαδικό από το οδηγοί/ κατάλογο του έργου.

Η γραμμή 8 λέει στο πρόγραμμα περιήγησης να φορτώσει τον ιστότοπο facebook.com.

Όλα γίνονται τόσο γρήγορα μόλις τρέξετε το σενάριο. Έτσι, έχω χρησιμοποιήσει το ύπνος() λειτουργεί πολλές φορές μέσα ex02.py για καθυστέρηση εντολών προγράμματος περιήγησης. Με αυτόν τον τρόπο, μπορείτε να παρατηρήσετε πώς λειτουργούν τα πάντα.

Η γραμμή 11 βρίσκει το πλαίσιο κειμένου εισαγωγής email και αποθηκεύει μια αναφορά του στοιχείου στο emailInput μεταβλητός.

Η γραμμή 12 βρίσκει το πλαίσιο κειμένου εισαγωγής email και αποθηκεύει μια αναφορά του στοιχείου στο emailInput μεταβλητός.

Η γραμμή 13 βρίσκει το στοιχείο εισόδου που έχει το χαρακτηριστικό αξία του Σύνδεση χρησιμοποιώντας τον επιλογέα XPath. Για αυτό, έχω χρησιμοποιήσει τον επιλογέα XPath //*[@value = ’Σύνδεση’] Το

Ο επιλογέας XPath ξεκινά με // Το Σημαίνει ότι το στοιχείο μπορεί να βρίσκεται οπουδήποτε στη σελίδα. ο * το σύμβολο λέει στο Σελήνιο να επιλέξει οποιαδήποτε ετικέτα ( εισαγωγή ή Π ή σπιθαμή, κλπ.) που ταιριάζει με την κατάσταση μέσα στις τετράγωνες αγκύλες [] Το Εδώ, η συνθήκη είναι, το χαρακτηριστικό στοιχείο αξία είναι ίσο με Σύνδεση Το

Η γραμμή 15 στέλνει την είσοδο[προστασία ηλεκτρονικού ταχυδρομείου]στο πλαίσιο κειμένου εισαγωγής email και η γραμμή 16 καθυστερεί την επόμενη λειτουργία.

Η γραμμή 18 στέλνει το μυστικό πέρασμα εισόδου στο πλαίσιο κειμένου εισαγωγής κωδικού πρόσβασης και η γραμμή 19 καθυστερεί την επόμενη λειτουργία.

Η γραμμή 21 στέλνει το πατήστε το πλήκτρο σύνδεσης.

Εκτελέστε το ex02.py Σενάριο Python με την ακόλουθη εντολή:

$ python3 ex02.py

Όπως μπορείτε να δείτε, τα πλαίσια κειμένου ηλεκτρονικού ταχυδρομείου και κωδικού πρόσβασης είναι γεμάτα με τις εικονικές τιμές και το Σύνδεση πατηθεί το κουμπί.

Στη συνέχεια, η σελίδα μεταβαίνει στην ακόλουθη σελίδα.

Εύρεση στοιχείων κατά μερικό κείμενο:

Στην προηγούμενη ενότητα, σας έδειξα πώς μπορείτε να βρείτε στοιχεία με συγκεκριμένο κείμενο. Σε αυτήν την ενότητα, θα σας δείξω πώς μπορείτε να βρείτε στοιχεία από ιστοσελίδες χρησιμοποιώντας μερικό κείμενο.

Στο παράδειγμα, ex01.py , Έχω ψάξει για το στοιχείο συνδέσμου που περιέχει το κείμενο Ξεχάσατε τον λογαριασμό; Το Μπορείτε να αναζητήσετε το ίδιο στοιχείο συνδέσμου χρησιμοποιώντας μερικό κείμενο, όπως π.χ. Ξεχασμένο acc Το Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε το περιέχει () Συνάρτηση XPath, όπως φαίνεται στη γραμμή 10 της ex03.py Το Οι υπόλοιποι κωδικοί είναι οι ίδιοι με τους στο ex01.py Το Τα αποτελέσματα θα είναι τα ίδια.

Στη γραμμή 10 από ex03.py , η συνθήκη επιλογής χρησιμοποίησε το περιέχει (πηγή, κείμενο) Συνάρτηση XPath. Αυτή η συνάρτηση παίρνει 2 ορίσματα, πηγή, και κείμενο Το

ο περιέχει () συνάρτηση ελέγχει εάν το κείμενο που δίνεται στο δεύτερο όρισμα ταιριάζει εν μέρει με το πηγή τιμή στο πρώτο όρισμα.

Η πηγή μπορεί να είναι το κείμενο του στοιχείου ( κείμενο() ) ή την τιμή χαρακτηριστικού του στοιχείου ( @attr_name ).

Σε ex03.py , ελέγχεται το κείμενο του στοιχείου.

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

Έγραψα ξανά το παράδειγμα ex03.py για αναζήτηση του στοιχείου με το οποίο ξεκινά το κείμενο Ξεχασμένος, όπως μπορείτε να δείτε στη γραμμή 10 του ex04.py Το Το αποτέλεσμα είναι το ίδιο με αυτό στο ex02 και ex03.py Το

Επίσης έχω ξαναγράψει ex02.py έτσι ώστε να αναζητά το στοιχείο εισόδου για το οποίο το αξία το χαρακτηριστικό ξεκινά με Κούτσουρο, όπως μπορείτε να δείτε στη γραμμή 13 του ex05.py Το Το αποτέλεσμα είναι το ίδιο με αυτό στο ex02.py Το

Συμπέρασμα:

Σε αυτό το άρθρο, σας έχω δείξει πώς μπορείτε να βρείτε και να επιλέξετε στοιχεία από ιστοσελίδες ανά κείμενο με τη βιβλιοθήκη Selenium Python. Τώρα, θα πρέπει να μπορείτε να βρείτε στοιχεία από ιστοσελίδες με συγκεκριμένο κείμενο ή μερικό κείμενο με τη βιβλιοθήκη Selenium Python.