Cómo automatizar las cosas aburridas con JS

Una de las cosas por las que Javascript no es conocido es la automatización, lo cual es desafortunado porque en realidad hay numerosas API para automatizar casi cualquier cosa en Javascript, el problema es que otros idiomas “llegaron primero” y llegaron a dominar.

Un ejemplo son los dos sistemas operativos principales. Tanto MacOS como Windows permiten a los usuarios la capacidad de automatizar casi cualquier cosa en su máquina con Javascript, ¡listo para usar!

Apple tiene la API JavaScript for Automation (JXA) que le permite manipular casi cualquier cosa en su Mac usando Javascript, el enlace presenta una demostración de su presentación hace años. Para darle una introducción histórica y un comienzo para principiantes en JXA, aquí hay algunos enlaces buenos

Extensibilidad y cambios de automatización en OS X Yosemite (2014)

Primeros pasos con JavaScript para la automatización en Yosemite (2014)

Una guía para principiantes de JXA, JavaScript Application Scripting (2016)

dtinth / JXA-Cookbook (Un tutorial completo y moderno sobre JXA).

Windows ha tenido algo similar incluso antes de JXA llamado Windows Script Host, que le permite escribir scripts utilizando el sabor de Javascript de Microsoft llamado Jscript. Puede leer los documentos de Microsoft a los que me vinculé, pero este tutorial de Youtube debería ser suficiente para darle una buena visión general:

Una razón por la que estos métodos de automatización no son tan conocidos es porque en las máquinas Mac ya puede automatizar las cosas con Shell Scripts y simplemente ejecutar un montón de Cron Jobs, y en Windows puede hacer lo mismo con CMD o PowerShell Scripts and Task Programador Estas han sido las formas tradicionales de trabajar con Mac y Windows desde mucho antes de que se introdujeran las API de Javascript.

Desde el escritorio, puede pasar al navegador web y automatizar Chrome, Firefox y otros navegadores utilizando Selenium WebdriverJS . Puede controlar Webdriver con una variedad de idiomas, incluido Javascript desde NodeJS. Trabajo con la API Javascript de Webdriver en mi trabajo y grabé una serie de tutoriales aquí:

Si bien Webdriver se usa a menudo para la automatización de pruebas, existe todo un mundo de posibilidades al automatizar sitios web con Javascript. Los trabajos que requieren tareas repetitivas en línea pueden beneficiarse mucho del uso de webdriver.

Espero que esto haya ayudado a responder tu pregunta. Si bien hay aún más ejemplos de automatización de JavaScript, como los corredores de tareas utilizados por los desarrolladores web para automatizar tareas tediosas mientras se crean sitios web (herramientas como Gulp o Grunt), el tipo de automatización del que estoy hablando en esta respuesta tiene que ver con la automatización ” Cosas aburridas”.

No hay una versión JavaScript / node js del libro de Al Sweigart, pero veamos esa tabla de contenido:

  • Capítulo 0 – Introducción
  • Capítulo 1 – Conceptos básicos de Python
  • Capítulo 2 – Control de flujo
  • Capítulo 3 – Funciones
  • Capítulo 4 – Listas
  • Capítulo 5 – Diccionarios y datos de estructuración
  • Capítulo 6 – Manipulación de cuerdas
  • Capítulo 7: coincidencia de patrones con expresiones regulares
  • Capítulo 8 – Lectura y escritura de archivos

Estos son todos los fundamentos del lenguaje. Puede encontrar documentación sobre el equivalente de JavaScript en MDN o los documentos de nodo. Puede encontrar una introducción más suave a esto en freeCodeCamp.

  • Capítulo 9 – Organizando archivos

Una serie de ejercicios para principiantes para mover / renombrar archivos. Puede seguir los mismos ejemplos y consultar los documentos del nodo.

  • Capítulo 10 – Depuración

Cubre la depuración y el registro. Hay muchas herramientas y artículos para esto.

  • Capítulo 11 – Raspado web

Hay solicitudes y paquetes de selenio en el nodo, por lo que el raspado en el nodo es bastante similar. Cheerio es un paquete popular que cumple un papel similar al de beautifulsoup.

  • Capítulo 12 – Trabajando con hojas de cálculo de Excel
  • Capítulo 13 – Trabajar con documentos PDF y Word

Hay paquetes que funcionan con cada uno de estos formatos. Están documentados

  • Capítulo 14 – Trabajando con archivos CSV y datos JSON

Hay paquetes que funcionan con CSV. JSON es nativo de JS.

  • Capítulo 15: Mantener el tiempo, programar tareas y ejecutar programas
  • Capítulo 16 – Envío de correos electrónicos y mensajes de texto
  • Capítulo 17 – Manipulación de imágenes
  • Capítulo 18 – Control del teclado y el mouse con la automatización de la GUI

También hay paquetes que realizan estas tareas. También están documentados.

Mi recomendación general es seguir el libro y hacer los ejercicios en JS. Si necesita instrucciones paso a paso para hacer algo en particular y la documentación no le brinda suficientes detalles, intente revisar youtube y StackOverflow.

¡Buena suerte!

Puedes escribir scripts con npm. O considere usar una herramienta como gruñir o tragar para construir y automatizar tareas.