Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 177007|Antwort: 27

[Quelle] .Net/C# automatisierte Selenium-Tests erhalten Cookie-Werte

[Link kopieren]
Veröffentlicht am 05.07.2020 11:44:34 | | | |
Nachfrage

Da die Simulationsanfrage für den Login zu kompliziert ist, möchten wir Selenium verwenden, um Google Chrome zu öffnen, um nach dem Login den Cookie-Wert zu erhalten, und dann den Cookie-Inhalt übertragen, um die entsprechende Oberfläche der Website anzufordern, um den Test zu automatisieren.

Selen

Selenium ist ein Werkzeug für Webanwendungstests. Selenium-Tests laufen direkt im Browser, als ob ein echter Nutzer sie durchführen würde. Unterstützte Browser sind IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera usw. Die Hauptfunktionen dieses Tools umfassen: Browser-Kompatibilitätstests – testen Sie Ihre Anwendung, um zu sehen, ob sie auf verschiedenen Browsern und Betriebssystemen gut funktioniert. Testsystemfunktionalität – Erstellen Sie Regressionstests, um die Softwarefunktionalität und Benutzeranforderungen zu überprüfen. Es unterstützt die automatische Aufzeichnung von Aktionen und die automatische Erstellung von Testskripten in verschiedenen Sprachen wie .Net, Java, Perl usw.

Zuerst erstellen wir ein neues C#-Konsolenprojekt mit dem Projektnamen "chrome-cookie-demo" und die .NET-Framework-Version ist 4.7.2.

Der Nuget-Befehl ist wie folgt:

Nach der Installation von Selenium.WebDriver.ChromeDriver wird eine chromedriver.exe-Datei im Projekt-Debug-Verzeichnis generiert.
Selenium.WebDriver wird als abstrakte Schnittstelle verstanden, und jeder Browser implementiert diese Schnittstelle selbstständig: Selenium.WebDriver ruft Selenium.WebDriver.ChromeDriver(chromedriver.exe) auf, chromedriver.exe startet das nativ installierte Google Chrome gemäß den erhaltenen Parametern und führt dann die entsprechende Operation aus.

Natürlich gibt es eine Voraussetzung,Der Computer muss Google Chrome installiert haben

Der Code lautet wie folgt:

Der Fehler lautet wie folgt:


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



Das bedeutet, dass der aktuelle Treiber Version 83 von Google Chrome nicht unterstützt, prüfen Sie die auf dem Rechner installierte Version wie folgt:


(Version 71.0.3578.98)

Wenn du dein natives Google Chrome aktualisierst und neu startest, behebt das Problem (oder installiere die Browserversion, die die Anforderungen erfüllt).

Wir versuchen, das Chrome-Cookie-Demo-Projekt erneut auszuführen und stellen fest, dass die Seite normal geöffnet werden kann, aber,Die Webseite ist nicht angemeldet。 Wenn Sie auf den Browser klicken, um diese Seite zu öffnen, ist der Status eingeloggt.

Die Lösung besteht darin, den user-data-dir-Parameter mit folgendem Code festzulegen:

Wir starten das Programm neu und erhalten folgenden Fehler:

Unbehandelte Ausnahme: OpenQA.Selenium.WebDriver Ausnahme: ungültiges Argument: Benutzerdatenverzeichnis ist bereits in Betrieb, bitte geben Sie einen eindeutigen Wert für --user-data-dir-Argument an, oder verwenden Sie -- user-data-dir
   bei OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   bei OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2-Parameter)
   In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   In OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor befehlExecutor, ICapabilities desiredCapabilities)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor(ChromeDriverService-Dienst, ChromeOptions-Optionen, TimeSpan commandTimeout)
   In OpenQA.Selenium.Chrome.ChromeDriver: ctor (ChromeDriverService-Dienst, ChromeOptions-Optionen)
   In chrome_cookie_demo. Program.Main(String[] args) Standort C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo Program.cs\: Zeilennummer 36

Grob gesagt, der Ordner ist besetzt, bitte ersetze ihn, die Lösung:Schließen Sie Ihr geöffnetes Google Chrome und verwenden Sie den Ordner für die Benutzerdaten für das Programm "chrome-cookie-demo", das wir geschrieben haben

Erhalte Web-Cookies

driver.manage().getCookies();   Gib die Liste aller Cookies zurück
driver.manage().getCookieNamed(arg0);  Geben Sie ein spezifisches Cookie gemäß dem Namen zurück
driver.manage().addCookie(arg0);   Erstelle und füge den Keks hinzu
driver.manage().deleteCookie(arg0);  Löschen Sie das spezifische Cookie
driver.manage().deleteCookieNamed(arg0); Lösche spezifische Cookies gemäß Name
driver.manage().deleteAllCookies();  Alle Cookies löschen

Dokumentation:Der Hyperlink-Login ist sichtbar.

Wir testen, um alle Web-Cookies zu erhalten

Entdeckung,Sie können die Cookie-Informationen von "HttpOnly" lesen., wie in der untenstehenden Abbildung dargestellt:



Natürlich müssen wir die Cookie-Informationen in eine Zeichenkette umwandeln, dann die Schnittstelle für Anfragen simulieren und die Methode zur Umwandlung an eine Zeichenkette im Quellcode anhängen.

Quellcode-Download:

Der Hyperlink-Login ist sichtbar.

(Ende)

Punktzahl

Anzahl der Teilnehmer1MB+1 beitragen+1 Zusammenbruch Grund
jgskingstone + 1 + 1 Sehr mächtig!

Alle Bewertungen sehen





Vorhergehend:EF(CodeFirst) + MySQL
Nächster:MSSQL-bedingte Abfrage WO die Bedingung ignoriert
Veröffentlicht am 14.05.2022 10:22:54 |
Prompt:Autoren werden gebannt oder entfernte Inhalte automatisch blockiert
Veröffentlicht am 14.05.2022 10:21:26 |
Prompt:Autoren werden gebannt oder entfernte Inhalte automatisch blockiert
Veröffentlicht am 27.11.2021 17:31:04 |

Die .NET Selenium-Simulation ist immer noch großartig, danke.
Veröffentlicht am 05.07.2020 12:46:59 |
Es scheint gut zu sein
Veröffentlicht am 18.08.2020 10:45:14 |
Lernen. Fleißiges Lernen.
Veröffentlicht am 10.10.2020 17:34:08 |
Komm und lerne, danke
Veröffentlicht am 28.10.2020 17:26:20 |
Sehr gut.  
Veröffentlicht am 03.11.2020 00:20:29 |
Danke~~ Lerne ~~~~~~~~
Veröffentlicht am 26.11.2020 21:26:44 |
Danke LZ fürs Teilen
Veröffentlicht am 24.01.2021 03:02:19 |
Warum musst du antworten, um es zu sehen?
Veröffentlicht am 06.03.2021 20:49:30 |
1111111111111111
Veröffentlicht am 02.05.2021 20:12:35 |
Lernen. Fleißiges Lernen.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com