¿Cómo puedo crear un programa que controle un navegador web?

Yo uso Macro Scheduler. Tienen un componente llamado Web Recorder que se automatizará en función de los elementos HTML de la página, por lo que es bastante confiable. Para las funciones con las que es más difícil interactuar, el software principal del Programador de macros tiene su propio lenguaje de secuencias de comandos para hacer reconocimiento de imágenes y movimientos / clics del mouse (junto con cualquier otra cosa que se pueda esperar de un lenguaje de secuencias de comandos). Esta parte es ciertamente menos confiable, pero aún funciona bien en su mayor parte. El componente de automatización web solo funciona con IE.

Me resulta muy fácil de recoger y usar; puede hacer lo que describió anteriormente muy rápidamente y sin dolor (aunque no estoy seguro de qué piensa hacer con los resultados después de la búsqueda). He sido bastante productivo con este software y lo recomiendo, pero honestamente no he usado muchos otros de este tipo. Watir de una respuesta anterior suena interesante.

Dependiendo de lo que quieras hacer, he tenido buenos resultados con phantomjs: Headless WebKit con JavaScript API. Le permite ejecutar fácilmente tareas comunes que requieren un navegador web, pero lo hace todo sin mostrar el navegador Chrome (se ejecuta sin cabeza), lo que para la mayoría de las tareas de automatización es ideal.

De hecho, terminé de reemplazar un código que controlaba Chrome y Safari. Es posible, tanto en Mac como en PC, hacerlo. En Windows, puede tener scripts de usuario. En Mac, puede usar AppleTalk y / o el Marco de Accesibilidad. Pero es realmente bastante desagradable hacerlo. Está bien si eres la única persona que lo usa, pero si actualizas, entonces poof, tal vez. Es insoportable intentar hacerlo por algo que distribuyes, que es una de las razones por las que reemplacé el código.

Creo que sería más fácil escribir una aplicación que use WebKit como navegador web, eso es lo que haría, sin saber más sobre las tareas particulares que está tratando de hacer.

Carpincho es mi favorito. Puede intercambiar controladores web dentro y fuera para obtener lo mejor de todos.

https://github.com/jnicklas/capy

Comience con el controlador de selenio para que pueda ver su secuencia de comandos en una ventana del navegador. Luego cambie al controlador poltergeist (que usa NodeJS) para la automatización sin cabeza con mucho menos sobrecarga.

https://github.com/jonleighton/p

Mechanize es una biblioteca de navegador sin cabeza basada en Python que hace que sea muy fácil escribir cosas y um … mecanizar tareas. Aquí hay una historia interesante sobre cómo algunos chicos del MIT la usaron para hackear el Dropbox SpaceRace: Hackear la Dropbox Space Race.

Puede usar selenio, los lenguajes famosos como java, C # y Python lo admiten. Puedes hacer todo a través del código que haces con el navegador.

Watir.com

Con WebDriver tienes una buena API para manejar Firefox, Chrome, IE y otros navegadores.

More Interesting

¿Adoptar una metodología llamada 'Ágil' como Scrum (y tal vez contratar entrenadores) proporcionará más beneficios que el desarrollo incremental simple, con una cola priorizada dinámicamente, compilaciones frecuentes e interacción completa con el cliente? En otras palabras, ¿se ha sobrevendido todo el 'asunto ágil' cuando las prácticas adaptativas de antaño funcionan bien?

¿Deben los ingenieros de software saber un par de idiomas?

¿El algoritmo básico y la estructura de datos son tan importantes que cada empresa debe examinar a su candidato probándolo?

¿Cuáles son las principales compañías tecnológicas en Turquía para ingenieros de software?

Si tiene que crear objetos para cada número de enrutador en un archivo, ¿cuál es la mejor manera si no sabe cuántas líneas obtendrá para cada enrutador?

¿Qué distingue al 1% superior de los profesionales de control de calidad del 10% superior?

¿Cuál es una cantidad razonable para presupuestar equipos para ingenieros de software?

¿Cuánto tiempo deben durar los períodos de garantía sin errores en el desarrollo de un nuevo software?

Como ingeniero de software, ¿cuándo sintió que la falta de un título de posgrado lo detuvo y por qué?

¿Cuánto tiempo le tomaría a la persona promedio aprender lo suficiente sobre el desarrollo de software para ser empleable?

¿Debo usar == o === en Javascript y cuál es la diferencia entre los dos?

¿Hay algo en los blogs de ingeniería de software que te vuelva loco?

¿Qué beneficios tienen más probabilidades de obtener las empresas del software de minería de texto?

¿Vale la pena comprar un MacBook como programador?

¿Qué puede hacer un estudiante de secundaria ahora para prepararse para luego ser un desarrollador / ingeniero de software?