Demande
Comme la demande de simulation pour la connexion est trop compliquée, nous voulons utiliser Selenium pour ouvrir Google Chrome afin d’obtenir la valeur du cookie après la connexion, puis transporter le contenu du cookie pour demander l’interface pertinente du site web afin d’automatiser le test.
Sélénium
Selenium est un outil pour les tests d’applications web. Les tests Selenium s’exécutent directement dans le navigateur, comme si un vrai utilisateur les faisait. Les navigateurs pris en charge incluent IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc. Les principales fonctionnalités de cet outil incluent : Test de compatibilité des navigateurs – testez votre application pour voir si elle fonctionne bien sur différents navigateurs et systèmes d’exploitation. Fonctionnalité du système de test – Créer des tests de régression pour vérifier la fonctionnalité logicielle et les exigences utilisateur. Il supporte l’enregistrement automatique des actions et la génération automatique de scripts de test dans différents langages tels que .Net, Java, Perl, etc.
Tout d’abord, créons un nouveau projet console C# avec le nom « chrome-cookie-demo » et la version .NET Framework est la 4.7.2.
La commande nuget est la suivante :
Après l’installation de Selenium.WebDriver.ChromeDriver, un fichier chromedriver.exe sera généré dans le répertoire de débogage du projet. Selenium.WebDriver est compris comme une interface abstraite, puis chaque navigateur implémente cette interface de manière autonome, Selenium.WebDriver appellera Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe lancera Google Chrome installé nativement selon les paramètres obtenus, puis effectuera l’opération correspondante.
Bien sûr, il y a une condition préalable,L’ordinateur doit avoir Google Chrome installé。
Le code est le suivant :
L’erreur est la suivante :
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83
Cela signifie que le pilote actuel ne prend pas en charge la version 83 de Google Chrome, vérifiez la version installée sur la machine comme suit :
(Version 71.0.3578.98)
Mettre à jour votre Google Chrome natif et le redémarrer résoudra le problème (ou installer la version navigateur qui répond aux critères).
Nous essayons de relancer le projet chrome-cookie-demo et constatons que le site peut être ouvert normalement, mais,La page web n’est pas connectée。 Lorsque vous cliquez sur le navigateur pour ouvrir ce site, le statut est connecté.
La solution consiste à définir le paramètre user-data-dir avec le code suivant :
Nous redémarrons le programme et obtenons l’erreur suivante :
Exception non gérée : OpenQA.Selenium.WebDriverException : argument invalide : user data directory est déjà utilisé, veuillez spécifier une valeur unique pour l’argument --user-data-dir, ou ne pas utiliser -- user-data-dir sur OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(ResponseErrorResponseError) sur OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, paramètres du dictionnaire) In OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) Dans OpenQA.Selenium.Remote.RemoteWebDriver : ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) Dans OpenQA.Selenium.Chrome.ChromeDriver : ctor (service ChromeDriverService, options ChromeOptions, TimeSpan commandTimeout) Dans OpenQA.Selenium.Chrome.ChromeDriver : ctor (service ChromeDriverService, options ChromeOptions) En chrome_cookie_demo. Program.Main(String[] args) Emplacement C :\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs : ligne numéro 36 En gros, le dossier a été occupé, veuillez le remplacer, la solution :Fermez votre Google Chrome ouvert et utilisez le dossier données utilisateur pour le programme « chrome-cookie-demo » que nous avons écrit。
Obtenez des cookies web
driver.manage().getCookies() ; Retourner la liste de tous les cookies driver.manage().getCookieNamed(arg0) ; Retourner un cookie spécifique selon le nom driver.manage().addCookie(arg0) ; Créez et ajoutez le cookie driver.manage().deleteCookie(arg0) ; Supprimer un cookie spécifique driver.manage().deleteCookieNamed(arg0) ; Supprimer un cookie spécifique selon le nom driver.manage().deleteAllCookies() ; Supprimer tous les cookies Documentation:La connexion hyperlientérée est visible.
Nous testons pour obtenir tous les cookies web
Découverte,Vous pouvez lire les informations sur les cookies de « HttpOnly », comme montré dans la figure ci-dessous :
Bien sûr, il faut convertir les informations du cookie en chaîne, puis simuler l’interface de soumission des requêtes, et joindre la méthode de conversion en chaîne dans le code source.
Téléchargement du code source :
La connexion hyperlientérée est visible.
(Fin)
|