2010-04-06 22 views
5

se nos ha encomendado básicamente emular un navegador para buscar páginas web, buscando automatizar las pruebas en diferentes páginas web. Esto se usará para (idealmente) aplicaciones de consola que se ejecutan en segundo plano y generan informes.Emulando un navegador web

Intentamos ir con .NET y la biblioteca WatiN, pero se creó en un IE Marshalled, por lo que carecía de muchas características que pirateamos con llamadas a código nativo no administrado, pero al final del día IE no es seguro para hilos ni procesa seguro, y muchas de las características necesarias solo pueden implementarse cambiando los valores de registro y es terriblemente inflexible.

  • Proxy apoyo
  • JavaScript SOPORTE- tenemos que ser capaz de analizar el DOM efectiva después de cualquier javascript ha ejecutado (y es de esperar un evento se eleva para manejar las llamadas Ajax)
  • posibilidad de guardar todo el contenido de la página incluyendo las imágenes de la memoria caché de la página cargada a un lugar separado
  • capacidad de borrar las cookies/caché, las cookies conseguir el/la caché, etc.
  • capacidad para establecer cabeceras y alterar datos de envío para cualquier llamada navegador
  • Proceso y/o hilo de seguridad serían ideales
  • Y por el amor de drogs, una API que no es totalmente críptica

Idiomas aceptable C++, C#, Python, todo lo que puede ser un poco simple fondo aplicación que es algo soportable y no tiene una sintaxis completamente "no tradicional" como Ruby.

De mi propia investigación, y yo creo que soy terrible en las búsquedas de Google, he oído cosas buenas sobre WebKit ... sería el módulo de Qt QtWebKit manejar todas estas características?

+0

No sé lo suficiente sobre esto para saber si será útil, pero en algunas ediciones de VS 2010 hay algunas llamadas "Pruebas manuales" que le permiten registrar las interacciones con una página web. Luego puede profundizar en el código y automatizar la prueba, y supuestamente me dicen que lo que registra está en el nivel http. Entonces su código de prueba funcionaría a un nivel bastante bajo. Sin embargo, no sé lo desordenado que podría ser el código generado. – AaronLS

+0

No necesita cambios de registro reales para IE; puedes decirle a IE que use una raíz alternativa. – MSalters

Respuesta

1

Sé que mencionaste que no te gusta la sintaxis de Ruby (tampoco yo), pero solo tengo que decir que Watir es probablemente lo mejor que hay para lo que estás tratando de hacer.

EDIT: Parece que hay una contra-parte de Java llamados Watij

+0

Sí, eso es lo que vimos, pero ya estamos retrasados ​​y no podemos permitirnos aprender la sintaxis, sin mencionar los problemas de implementación con el cliente. Necesitamos una solución un tanto instantánea lista para el estado de horas extras. Supongo que Ruby probablemente pueda compilarse en un exe independiente, y podemos terminar teniendo que ir con Watir si no hay nada más. –

+0

@Sean Entendido. Ver editar. –

+0

"Actualmente, Watij solo permite la automatización de Internet Explorer en Windows. Se han implementado planes futuros para admitir otros, como Mozilla". - Sí, construir IE está condenado al fracaso. >. < –

1

Sólo he estado cavando en esto recientemente, así que no podría decir que esto hace todo lo que has enumerado, pero echa un vistazo a GeckoFx.

Desde el sitio: GeckoFX es un componente de código abierto que hace que sea fácil incrustar Mozilla Gecko (Firefox) en cualquier aplicación .NET Windows Forms. Escrito en limpio, totalmente comentado C#, GeckoFX es el reemplazo perfecto para el control WebBrowser predeterminado basado en Internet Explorer.

En cuanto a mis propias impresiones: ha desvanecido el .NET WebBrowser predeterminado tanto en rendimiento como en estabilidad.