Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 177007|Respuesta: 27

[Fuente] Las pruebas automatizadas de .Net/C# Selenium obtienen valores de cookies

[Copiar enlace]
Publicado en 5/7/2020 11:44:34 | | | |
Demanda

Como la solicitud de simulación para iniciar sesión es demasiado complicada, queremos usar Selenium para abrir Google Chrome y obtener el valor de la cookie tras iniciar sesión, y luego llevar el contenido de la cookie para solicitar la interfaz relevante del sitio web para automatizar la prueba.

Selenio

Selenium es una herramienta para pruebas de aplicaciones web. Las pruebas de Selenium se ejecutan directamente en el navegador, como si un usuario real las estuviera haciendo. Los navegadores compatibles incluyen IE (7, 8, 9, 10, 11), Mozilla Firefox, Safari, Google Chrome, Opera, etc. Las principales características de esta herramienta incluyen: pruebas de compatibilidad de navegadores: prueba tu aplicación para ver si funciona bien en diferentes navegadores y sistemas operativos. Funcionalidad del sistema de pruebas – Crear pruebas de regresión para verificar la funcionalidad del software y los requisitos del usuario. Soporta el registro automático de acciones y la generación automática de scripts de prueba en diferentes lenguajes como .Net, Java, Perl, etc.

Primero, creemos un nuevo proyecto de consola en C# con el nombre de proyecto "chrome-cookie-demo" y la versión del .NET framework es la 4.7.2.

El comando nuget es el siguiente:

Tras la instalación de Selenium.WebDriver.ChromeDriver, se generará un archivo chromedriver.exe en el directorio de depuración del proyecto.
Selenium.WebDriver se entiende como una interfaz abstracta, y luego cada navegador implementa esta interfaz por sí mismo; Selenium.WebDriver llamará a Selenium.WebDriver.ChromeDriver(chromedriver.exe), chromedriver.exe iniciará el Google Chrome instalado de forma nativa según los parámetros obtenidos y luego realizará la operación correspondiente.

Por supuesto, hay un requisito previo,El ordenador debe tener Google Chrome instalado

El código es el siguiente:

El error es el siguiente:


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



Esto significa que el controlador actual no soporta la versión 83 de Google Chrome, comprueba la versión instalada en el equipo de la siguiente manera:


(Versión 71.0.3578.98)

Actualizar tu Google Chrome nativo y reiniciarlo lo solucionará (o instalar la versión del navegador que cumpla los requisitos).

Intentamos reejecutar el proyecto de demo de cookies de Chrome y descubrimos que el sitio puede abrirse normalmente, pero,La página web no está conectada。 Cuando haces clic en el navegador para abrir este sitio, el estado es iniciado en sesión.

La solución es establecer el parámetro user-data-dir con el siguiente código:

Reiniciamos el programa y aparece el siguiente error:

Excepción no gestionada: OpenQA.Selenium.WebDriverException: argumento inválido: el directorio de datos de usuario ya está en uso, por favor especifique un valor único para --user-data-dir argumento, o no use -- user-data-dir
   en OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   en OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, parámetros del diccionario'2)
   En OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   En OpenQA.Selenium.Remote.RemoteWebDriver: ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   En OpenQA.Selenium.Chrome.ChromeDriver: ctor (servicio ChromeDriverService, opciones de ChromeOptions, comando TimeSpan Tiempo límite)
   En OpenQA.Selenium.Chrome.ChromeDriver: ctor (servicio ChromeDriverService, opciones de ChromeOptions)
   En chrome_cookie_demo. Program.Main(String[] args) Ubicación C:\Users\itsvse_pc\source\repos\chrome-cookie-demo\chrome-cookie-demo\Program.cs: línea número 36

En términos generales, la carpeta ha estado ocupada, por favor reempláctala, la solución:Cierra tu Google Chrome abierto y usa la carpeta de datos de usuario para el programa "chrome-cookie-demo" que escribimos

Consigue cookies web

driver.manage().getCookies();   Devolver La lista de todas las galletas
driver.manage().getCookieNamed(arg0);  Devuelve la cookie específica según el nombre
driver.manage().addCookie(arg0);   Crea y añade la galleta
driver.manage().deleteCookie(arg0);  Eliminar cookies específicas
driver.manage().deleteCookieNamed(arg0); Eliminar la cookie específica según el nombre
driver.manage().deleteAllCookies();  Elimina todas las cookies

Documentación:El inicio de sesión del hipervínculo es visible.

Probamos para obtener todas las cookies web

Descubrimiento,Puedes leer la información de cookies de "HttpOnly", como se muestra en la figura siguiente:



Por supuesto, necesitamos convertir la información de las cookies en una cadena, luego simular la interfaz de envío de solicitudes y adjuntar el método para convertirla en una cadena en el código fuente.

Descarga del código fuente:

El inicio de sesión del hipervínculo es visible.

(Fin)

Puntuación

Número de participantes1MB+1 contribuir+1 Colapso razón
JGSKINGSTONE + 1 + 1 ¡Muy poderoso!

Ver todas las valoraciones





Anterior:EF(CodeFirst) + MySQL
Próximo:La consulta condicional de MSSQL WHERE ignora la condición
Publicado en 14/5/2022 10:22:54 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Publicado en 14/5/2022 10:21:26 |
Pronto:Los autores son baneados o el contenido eliminado se bloquea automáticamente
Publicado en 27/11/2021 17:31:04 |

La simulación de .NET Selenium sigue siendo increíble, gracias.
Publicado en 5/7/2020 12:46:59 |
Parece bien
Publicado en 18/8/2020 10:45:14 |
Aprendiendo. Estudiando mucho.
Publicado en 10/10/2020 17:34:08 |
Ven a aprender, gracias
Publicado en 28/10/2020 17:26:20 |
Muy bien.  
Publicado en 3/11/2020 0:20:29 |
Gracias~~ Aprende a aprender ~~~~~~~~
Publicado en 26/11/2020 21:26:44 |
Gracias LZ por compartir
Publicado en 24/1/2021 3:02:19 |
¿Por qué tienes que responder para verlo?
Publicado en 6/3/2021 20:49:30 |
1111111111111111
Publicado en 2/5/2021 20:12:35 |
Aprendiendo. Estudiando mucho.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com