Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 177007|Απάντηση: 27

[Πηγή] .Net/C# Selenium Οι αυτοματοποιημένες δοκιμές λαμβάνουν τιμές cookie

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 5/7/2020 11:44:34 π.μ. | | | |
Ζήτηση

Δεδομένου ότι το αίτημα προσομοίωσης για σύνδεση είναι πολύ περίπλοκο, θέλουμε να χρησιμοποιήσουμε το Selenium για να ανοίξουμε το Google Chrome για να λάβουμε την τιμή cookie μετά τη σύνδεση και, στη συνέχεια, να μεταφέρουμε το περιεχόμενο cookie για να ζητήσουμε από τη σχετική διεπαφή του ιστότοπου να αυτοματοποιήσει τη δοκιμή.

Σελήνιο

Το σελήνιο είναι ένα εργαλείο για τη δοκιμή εφαρμογών Ιστού. Selenium Οι δοκιμές εκτελούνται απευθείας στο πρόγραμμα περιήγησης, σαν να το έκανε ένας πραγματικός χρήστης. Τα υποστηριζόμενα προγράμματα περιήγησης περιλαμβάνουν IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera κ.λπ. Τα κύρια χαρακτηριστικά αυτού του εργαλείου περιλαμβάνουν: Δοκιμή συμβατότητας προγράμματος περιήγησης - δοκιμάστε την εφαρμογή σας για να δείτε εάν λειτουργεί καλά σε διαφορετικά προγράμματα περιήγησης και λειτουργικά συστήματα. Δοκιμή λειτουργικότητας συστήματος – Δημιουργήστε δοκιμές παλινδρόμησης για να επαληθεύσετε τη λειτουργικότητα του λογισμικού και τις απαιτήσεις των χρηστών. Υποστηρίζει αυτόματη καταγραφή ενεργειών και αυτόματη δημιουργία δοκιμαστικών σεναρίων σε διάφορες γλώσσες όπως .Net, Java, Perl κ.λπ.

Αρχικά, ας δημιουργήσουμε ένα νέο έργο κονσόλας C# με το όνομα έργου "chrome-cookie-demo" και η έκδοση πλαισίου .NET είναι 4.7.2.

Η εντολή nuget έχει ως εξής:

Μετά την εγκατάσταση του Selenium.WebDriver.ChromeDriver, θα δημιουργηθεί ένα αρχείο chromedriver.exe στον κατάλογο εντοπισμού σφαλμάτων του έργου.
Το Selenium.WebDriver νοείται ως μια αφηρημένη διεπαφή και, στη συνέχεια, κάθε πρόγραμμα περιήγησης υλοποιεί αυτήν τη διεπαφή από μόνο του, το Selenium.WebDriver θα καλέσει το Selenium.WebDriver.ChromeDriver(chromedriver.exe), το chromedriver.exe θα ξεκινήσει το εγγενώς εγκατεστημένο Google Chrome σύμφωνα με τις ληφθείσες παραμέτρους και, στη συνέχεια, θα εκτελέσει την αντίστοιχη λειτουργία.

Φυσικά, υπάρχει μια προϋπόθεση,Ο υπολογιστής πρέπει να έχει εγκατεστημένο το Google Chrome

Ο κωδικός έχει ως εξής:

Το σφάλμα έχει ως εξής:


System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83



Αυτό σημαίνει ότι το τρέχον πρόγραμμα οδήγησης δεν υποστηρίζει την έκδοση 83 του Google Chrome, ελέγξτε την έκδοση που είναι εγκατεστημένη στο μηχάνημα ως εξής:


(Έκδοση 71.0.3578.98)

Η αναβάθμιση του εγγενούς Google Chrome και η επανεκκίνηση του θα το διορθώσει (ή θα εγκαταστήσει την έκδοση του προγράμματος περιήγησης που πληροί τις απαιτήσεις).

Προσπαθούμε να εκτελέσουμε ξανά το έργο chrome-cookie-demo και διαπιστώνουμε ότι ο ιστότοπος μπορεί να ανοίξει κανονικά, αλλά,Η ιστοσελίδα δεν είναι συνδεδεμένη。 Όταν κάνετε κλικ στο πρόγραμμα περιήγησης για να ανοίξετε αυτόν τον ιστότοπο, η κατάσταση είναι συνδεδεμένη.

Η λύση είναι να ορίσετε την παράμετρο user-data-dir με τον ακόλουθο κώδικα:

Κάνουμε επανεκκίνηση του προγράμματος και λαμβάνουμε το ακόλουθο σφάλμα:

Ανεπίλυτη εξαίρεση: OpenQA.Selenium.WebDriverException: μη έγκυρο όρισμα: ο κατάλογος δεδομένων χρήστη χρησιμοποιείται ήδη, προσδιορίστε μια μοναδική τιμή για το όρισμα --user-data-dir ή μην χρησιμοποιήσετε -- user-data-dir
   στο OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   στο OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
   Σε OpenQA.Selenium.Remote.RemoteWebDriver.StartSession (ICapabilities desired Capabilities)
   Στο OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities επιθυμητέςΔυνατότητες)
   Στο OpenQA.Selenium.Chrome.ChromeDriver: ctor(Υπηρεσία ChromeDriverService, επιλογές ChromeOptions, εντολή TimeSpanTimeout)
   Στο OpenQA.Selenium.Chrome.ChromeDriver: ctor(Υπηρεσία ChromeDriverService, επιλογές ChromeOptions)
   Το chrome_cookie_demo. Program.Main(String[] args) Τοποθεσία C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: αριθμός γραμμής 36

Σε γενικές γραμμές, ο φάκελος έχει καταληφθεί, αντικαταστήστε τον, η λύση:Κλείστε το ανοιχτό Google Chrome και χρησιμοποιήστε το φάκελο δεδομένων χρήστη για το πρόγραμμα "chrome-cookie-demo" που γράψαμε

Λήψη web cookies

driver.manage().getCookies();   Επιστροφή Η λίστα όλων των Cookies
driver.manage().getCookieNamed(arg0);  Επιστροφή συγκεκριμένου cookie σύμφωνα με το όνομα
driver.manage().addCookie(arg0);   Δημιουργία και προσθήκη του cookie
driver.manage().deleteCookie(arg0);  Διαγραφή συγκεκριμένου cookie
driver.manage().deleteCookieNamed(arg0); Διαγραφή συγκεκριμένου cookie σύμφωνα με το όνομα
driver.manage().deleteAllCookies();  Διαγράψτε όλα τα cookies

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Δοκιμάζουμε για να λάβουμε όλα τα cookies ιστού

Ανακάλυψη,Μπορείτε να διαβάσετε τις πληροφορίες cookie του "HttpOnly", όπως φαίνεται στο παρακάτω σχήμα:



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

Λήψη πηγαίου κώδικα:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

(Τέλος)

Παρτιτούρα

Αριθμός συμμετεχόντων1ΜΒ+1 συνεισφέρω+1 Κατάρρευση λόγος
JGSKINGSTONE + 1 + 1 Πολύ δυνατό!

Δείτε όλες τις αξιολογήσεις





Προηγούμενος:EF(CodeFirst) + MySQL
Επόμενος:Το ερώτημα υπό όρους MSSQL WHERE αγνοεί τη συνθήκη
Δημοσιεύτηκε στις 14/5/2022 10:22:54 π.μ. |
Προτροπή:Οι συντάκτες αποκλείονται ή καταργούνται, το περιεχόμενο αποκλείεται αυτόματα
Δημοσιεύτηκε στις 14/5/2022 10:21:26 π.μ. |
Προτροπή:Οι συντάκτες αποκλείονται ή καταργούνται, το περιεχόμενο αποκλείεται αυτόματα
Δημοσιεύτηκε στις 27/11/2021 5:31:04 μ.μ. |

.NET Selenium Η προσομοίωση εξακολουθεί να είναι φοβερή, σας ευχαριστώ.
Δημοσιεύτηκε στις 5/7/2020 12:46:59 μ.μ. |
Φαίνεται καλό
Δημοσιεύτηκε στις 18/8/2020 10:45:14 π.μ. |
Μάθηση. Μελετώντας σκληρά.
Δημοσιεύτηκε στις 10/10/2020 5:34:08 μ.μ. |
Ελάτε να μάθετε, σας ευχαριστώ
Δημοσιεύτηκε στις 28/10/2020 5:26:20 μ.μ. |
Πολύ καλά.  
Δημοσιεύτηκε στις 3/11/2020 12:20:29 π.μ. |
Ευχαριστώ~~ Μάθετε να μαθαίνετε ~~~~~~~~
Δημοσιεύτηκε στις 26/11/2020 9:26:44 μ.μ. |
Ευχαριστώ LZ για την κοινή χρήση
Δημοσιεύτηκε στις 24/1/2021 3:02:19 π.μ. |
Γιατί πρέπει να απαντήσετε για να το δείτε;
Δημοσιεύτηκε στις 6/3/2021 8:49:30 μ.μ. |
1111111111111111
Δημοσιεύτηκε στις 2/5/2021 8:12:35 μ.μ. |
Μάθηση. Μελετώντας σκληρά.
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com