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)
|