Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 177007|Répondre: 27

[Source] .Net/C# Les tests automatisés Selenium obtiennent des valeurs de cookies

[Copié le lien]
Publié sur 05/07/2020 11:44:34 | | | |
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)

Score

Nombre de participants1MO+1 contribuer+1 Effondrement raison
JGSKINGSTONE + 1 + 1 Très puissant !

Voir toutes les notes





Précédent:EF(CodeFirst) + MySQL
Prochain:Requête conditionnelle MSSQL WHERE ignore la condition
Publié sur 14/05/2022 10:22:54 |
Prompt:Les auteurs sont bannis ou le contenu supprimé est automatiquement bloqué
Publié sur 14/05/2022 10:21:26 |
Prompt:Les auteurs sont bannis ou le contenu supprimé est automatiquement bloqué
Publié sur 27/11/2021 17:31:04 |

La simulation de sélénium .NET reste excellente, merci.
Publié sur 05/07/2020 12:46:59 |
Ça semble bien
Publié sur 18/08/2020 10:45:14 |
Apprendre. Étudier dur.
Publié sur 10/10/2020 17:34:08 |
Viens apprendre, merci
Publié sur 28/10/2020 17:26:20 |
Très bien.  
Publié sur 03/11/2020 00:20:29 |
Merci~~ Apprends à apprendre ~~~~~~~~
Publié sur 26/11/2020 21:26:44 |
Merci LZ d’avoir partagé
Publié sur 24/01/2021 03:02:19 |
Pourquoi dois-tu répondre pour le voir ?
Publié sur 06/03/2021 20:49:30 |
1111111111111111
Publié sur 02/05/2021 20:12:35 |
Apprendre. Étudier dur.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com