necesito la mejor manera de inspeccionar las cabeceras de respuesta HTTP con selenio. Miré alrededor de los documentos de Selenium y no vi ninguna forma directa de hacerlo. La ayuda es muy apreciada.La mejor manera de inspeccionar las cabeceras de respuesta HTTP con selenio
Respuesta
he respondido a esta pregunta un par de veces en StackOverflow. Busca mis respuestas anteriores para desenterrarlo. La clave que tiene que escribir es un código Java personalizado que amplíe ProxyHandler y SeleniumServer. También necesita utilizar un lanzamiento AFTER 1.0 beta 2.
En cuanto a las personas que preguntan por qué que desea hacer esto: hay muchas razones. En mi caso, estamos probando una aplicación pesada AJAX y cuando las cosas van mal, una de las primeras cosas que depuramos es el cable de red. Eso nos ayuda a ver si ocurrió la llamada AJAX y, de ser así, cuál fue la respuesta.De hecho, automatizamos la recopilación de esta información y la capturamos (junto con una captura de pantalla) con cada prueba de Selenium.
Estoy marcando esta respuesta como la que más me gusta, ya que realmente resuelve mi problema. :) Tenemos razones para querer inspeccionar los encabezados también. Estoy de acuerdo con las publicaciones anteriores, pero es muy útil para nosotros obtener los encabezados. – globulus
Bueno, ya que es el propio señor Selenium, no puede discutir;). Sabía que también podías extender las clases de Java en el servidor. –
He buscado a través de sus respuestas y parece que no puedo encontrar el que usted menciona. ¿Cuál fue la respuesta? ¿Tiene algunos ejemplos de extender esas dos clases de Java? – nzpcmad
Lo que hice para manejar esto usando Selenium (no Selenium RC) fue convertir las pruebas HTML en JSP y luego utilizar Java donde sea necesario para leer encabezados o hacer cualquier cosa que JavaScript (selenio es simplemente Javascript) no podría .
Tal vez usted podría dar algunos detalles sobre cómo va a utilizar el Selenio?
Estoy usando el controlador Ruby para Selenium RC. No estoy seguro de seguir lo que quieres decir con la conversión de las pruebas HTML en JSP. El sitio que estoy probando está escrito en .Net, aunque no puedo imaginar que eso haga una diferencia en el enfoque. Entonces, ¿hay una manera de interceptar los encabezados es lo que dices? – globulus
No utilizaría selenio para este tipo de prueba y sugieren que a resolver una variedad de problemas de pruebas con diferentes herramientas. lo que hacemos es:
pruebas de uso de la unidad de código de prueba: métodos y clases
Pruebas de integración para probar cómo los componentes de aplicación cuelgan juntos
Un framework de pruebas funcionales simples como Canoo WebTest (o algún equivalente) para afirmar cosas como encabezados de caché Http, estructura de página básica, redirección simple y configuración/valores de cookies
Pruebas a medida para garantizar la validez de las páginas a estándares del W3C
JsUnit para poner a prueba las clases y los métodos que hemos creado
selenio para probar la interfaz de usuario funcionalidad/comportamiento de JavaScript y la integración de Javascript en esas páginas
Su tiempo de pasar la pena que estallan la responsabilidad de probar diferentes aspectos del sistema de uso de estas herramientas diferentes ya que utilizando sólo el selenio puede causar problemas:
- Cuanto más grande es el conjunto, más lento se ejecuta. De hecho selenio es inherentemente más lento en comparación con las otras herramientas mencionadas
- Se ocupa de las pruebas de comportamiento/funcional bien pero, sin embargo, XPaths puede ser frágil y puede requerir cantidades crecientes de tiempo y esfuerzo para mantener
- lo general, se requiere configuración 'como si -real-vida' datos con su aplicación al paso a través de escenarios de usuario (que puede ser complicado y llevar mucho tiempo)
también hay algunas técnicas - que puede o puede no haber encontrado - el cual puede usar para hacer sus pruebas de Selenium more resilient.
captureNetworkTraffic() API en DefaultSelenium captura encabezados de solicitud/respuesta http y puede acceder a ellos en formato html/xml/plain.
Aquí es código de ejemplo:
Selenium s = new DefaultSelenium(...);
s.start("captureNetworkTraffic=true");
s.open("http://www.google.com");
String xml = s.captureNetworkTraffic("xml"); // html, plain
s.stop();
este método no es compatible con el selenio 2 .. recibo 'java.lang.UnsupportedOperationException: captureNetworkTraffic' –
Me parece que puede ser muy útil para probar las cabeceras de respuesta HTTP desde el selenio. No en el 100% de los casos, tal vez ... pero ciertamente hay algunos. Si está revisando una secuencia de páginas, parece que sería útil probar algunos encabezados de respuesta como parte de esa prueba (tipo de contenido y salto a la mente de Pragma).
Bueno, yo estaba esperando para averiguar si Accept-Encoding propiedad de la cabeza HTTP contiene "gzip", debido a que en nuestra empresa, comprimimos los archivos CSS y JS en nuestra aplicación web mediante gzip y queremos probarlo por Selenim después de cada commit.
Se me ocurrió una solución que utiliza un proxy incorporado, cortesía del proyecto Proxoid.
Su peso ligero, a diferencia de prácticamente cualquier otra alternativa por ahí (como BrowserMob o incluso LittleProxy)
Ver el COMO, con el código, aquí: http://www.supermind.org/blog/968/howto-collect-webdriver-http-request-and-response-headers
Lea las cookies de sesión de selenio y luego usar un verdadero Biblioteca HTTP fuera de Selenium para solicitar la página específica.
Este es el código Python:
# get session cookies from Selenium
cookies = {}
for s_cookie in self.selenium.get_cookies():
cookies[s_cookie["name"]]=s_cookie["value"]
# request the pdf using the cookies:
response = requests.get(self.full_url('/vms/business_unit/2002/operational_unit/200202/guest/40/bill/pdf/'), cookies = cookies)
self.assertEqual(response.headers["content-type"], "application/pdf")
- 1. render_to_response con cabeceras de respuesta HTTP
- 2. Sintaxis de las cabeceras HTTP de estado
- 3. lectura cabeceras HTTP entrantes con Node.js
- 4. ¿Cómo inspeccionar la cadena de respuesta?
- 5. Leer mensaje cabeceras http
- 6. Cabeceras HTTP de solicitud personalizada en HTML
- 7. ¿Cuál es la mejor manera de obtener un código de respuesta HTTP de una URL?
- 8. Apache Solr: configuración de cabeceras de respuesta HTTP de solrconfig.xml Para CORS
- 9. HTTP Spec: cabeceras Autorización proxy y autorización
- 10. ¿La mejor manera de guardar una respuesta en Sinatra?
- 11. Cabeceras HTTP para longitud desconocida de contenido
- 12. ¿Es posible establecer cabeceras HTTP personalizado en la vista Web
- 13. Solicitud abierta en Safari con cabeceras HTTP personalizadas
- 14. ¿La mejor manera de truncar todas las tablas con hibernación?
- 15. ¿Cuál es la mejor manera de organizar las pruebas de Selenium con PHPUnit?
- 16. ¿Es WebClient la mejor manera de descargar datos http?
- 17. Cómo capturar solicitudes HTTP POST con browsermob-proxy y selenio
- 18. La mejor manera de enviar una serie de solicitudes HTTP con NSURLConnection
- 19. ¿Qué son las etiquetas de entidad de respuesta HTTP?
- 20. trabajo PHP CRON, cabeceras HTTP no de salida
- 21. mejor manera de respuesta XML impresión bonita en griales
- 22. ¿Cómo veo la respuesta HTTP a una solicitud de ActiveResource?
- 23. ¿Cuál es la mejor manera de sincronizar 2 tablas sqlite con http y json?
- 24. Generar una respuesta HTTP en Ruby
- 25. ¿Cabeceras HTTP adecuadas para las respuestas de éxito/fracaso de inicio de sesión?
- 26. Necesita cuerpo de respuesta de HTTP 500 con file_get_contents (PHP)
- 27. Java: ¿Hay alguna manera de cambiar los encabezados de respuesta HTTP recibidos?
- 28. Envío de los valores UTF-8 en los resultados de las cabeceras HTTP en mojibake
- 29. ¿Puedo usar tcpdump para obtener solicitudes HTTP, encabezado de respuesta y cuerpo de respuesta?
- 30. Problemas de enviar las cabeceras SOAP de autenticación en php
¿Qué es exactamente estás tratando de hacer? Selenium opera en el navegador. ¿Hay alguna información particular que buscas? – Ben