@Juan Prz la idea para que no se tarde ese segundo es y no este "hardcodeado" seria hacer async a la funcion y await ni bien carga la data, responder enviar y seguir con el siguiente PD: ahora sabemos como FalconMasters responde nuestros emails un saludo y muy buen video
he intentado usar el buscador de youtube para buscar ciertas palabras con el codigo que enseñaste pero aparecen muchas mas cosas, no es como que todo viene en lista como el formulario que tu creaste para este video
No sabía hacer esto. La sensación que se siente cuando se aprende algo nuevo y se entiende es impagable. Gracias por regalar este conocimiento y de la manera que lo hacés! Saludos
Man, después de años me volvió a salir unos de tus videos. No sabes la gran ayuda que fuiste hace ya más de 5 años. Tus videos fueron una parte clave por la cual me empezó a gustar el front-end y por lo que ahora a eso me dedico. Muchas gracias por todo tu contenido, sigue así!
Muy buen video, me gusto mucho y aunque el código fue sencillo (que esta bien), ayuda a ampliar mi lógica de programación, ¡nunca se termina de aprender!
es muy mala idea... mejor iterar el array usando un bucle for y ejecutar una función asíncrona dentro de cada iteración. Para estos casos evitar Array.foreach que le pasa un callback a cada elemento
@@FalconMasters Y esta perfecto a mi me gusto tu video, pero como dijiste puede mejorarse, setTimeOut envia a la queue de eventos tareas "asincronas" que se acumulan, primero acumulas tareas al paso del foreach que termina primero enviando los setTimeout al queue, y luego se van desencolando con tu time*index, cuando no son muchas esta perfecto, cuando son millones, pueden pasar dos cosas, un error por indexOutBound, derivado de una multiplicacion imposible que sale del rango de numerico, o que se acumulen muchos setTime en el eventqueue y muera. Toma en cuenta que tienes dos setTimeAnidados nos da un toal de O(n^2) de espacio de memoria para el algoritmo, algo que puede ser problematico
Excelente video, solo una recomendación. En vez de estar copiando y pegando el código para no perderlo puedes hacer clic en el icono con forma de libro que tiene un punto azul del lado derecho y abrirá un editor de texto multilínea del lado izquierdo donde el código permanecerá sin necesidad de copiar y pegar constantemente, escribes tu código y le das en el botón de ejecutar, si falla arreglas y ejecutar de nuevo, espero te sea de ayuda
Genial vídeo Maestro! No solo es el desarrollo sencillo pero inteligente del tutorial, sino la orientación e intención del mismo. Este vídeo demuestra, una vez más, su excelente calidad como instructor y su intención de abordar áreas que otros ni siquiera han pensado. Este vídeo es inspirador para hacer muchas otras cosas, si se sabe aprovechar. Gracias!!! Que continúen los éxitos. Saludos cordiales!
Que genial al inicio pensé que era con un documento externo, pero al recargar la página no estaria ese valor, pero que loco la forma en que lo hiciste, te ahorras tiempo, buen video!!
Como detecta la variable index que se refiere precisamen al index de los elementos, valga la redundancia, ya que el "enlace" es sólo valor de referencia de como sera llamado dentro de los corchetes, sin embargo es distinto con el index
Buen video, se me ocurren cosas como validar el comentario, filtrar palabras clave o palabras no permitidas y en base al contenido publicado pues generar una respuesta especifica. Además de eso se puede almacenar toda la información para posteriormente generar algún tipo de "reporte" dando una salida con algún formato como csv para poder visualizarlo posteriormente en excel, saludos!
@@FalconMasters¿Conoces si existe alguna comunidad o club de programadores que aprendan en compañía y hagan pequeños proyectos juntos? No sé, algún servidor de Discord o IRC. Me gusta y se me da bien pero lo hago solo cada día frente a la computadora, tengo buenas ideas pero no lo comparto con nadie.
Aprendí eso de que para que el tiempo se vaya esperando en tantos segundos, porque me sucedía el mismo error de lo al comienzo que se ejecutaba todo de una solo , y ahora ya de que es así... Gracias
pensé que al hacer el querySelectorAll si querias iterar por esto tenias que si o si hacer un Array.from de ese node list o no funcionaba, buen video amigo
Es una solución rápida aunque un poco "bruta" al problema, una posible optimización y mejor práctica es independizar cada click de la lista ejecutando un proceso asíncrono y dentro de este proceso reemplazar la espera de 1 segundo de la carga por una promesa que espere hasta que la data esté cargada para responder el mensaje, creo que puede reducir el tiempo de ejecución hasta menos de 30 segundos o 1 minuto y es menos propenso a que falle por una demora en la respuesta del server.
@@cristiannajera5147 Por qué la ofensa si tiene toda la razón? Incluso el mismo autor del video menciona que su código se puede mejorar y utilizar el concepto de promesas sería una solución mucho más óptima y aún así no desacredita lo que se realizó en el video.
@@mejoresanime485 el problema del video es un caso básico, donde tienes todo cargado y listo para solo esperar lo que manda una db y hacer un click, una búsqueda de youtube es más compleja porque son consultas completas donde responde con el html completo, sesión, tokens, etc. para eso ya debes aplicar la técnica de webscraping donde creas un bot que simule ser un humano navegando, te recomiendo investigar sobre selenium y python, con eso te irá bien.
Lo malo de selenium es que me obliga a a loguearme a mi cuenta para poder crear un post en una web y que además se abre en otra ventana y no funciona en la que estoy utilizando, me ha dado bastantes problemas porque parece ser que se ha actualizado a la versión 4 y muchos sino todos los vídeos enseñan con selenium antiguo que no funciona hoy día. Pero bueno, he avanzado poco a poco, he conseguido loguearme, pero, al entrar en la cuenta me aparece un mensaje de la cookies y de recordar la contraseña, esto hace que no se siga ejecutando el resto del scri0t, que básicamente es rellenar dos campos de texto, hacer click en un botón y enviar. Pero bueno, ya lo solucionaré.
Excelente video muy buena idea la que nos compartes, pero un comentario para la comunidad en general cuando desarrollen sitios web o sistemas distribuidos, uno de los puntos fuertes de la seguridad es evitar la inyección de código, así que mucho cuidado con su código :P . Saludos
Buen vídeo, para la gente que está aprendiendo también es necesario saber que este método puede fallar si la petición tarda más de lo esperado en obtener la pregunta o actualizar la base de datos con el nuevo mensaje. Mirad funciones asíncronas, promesas etc
Cuidado con el setTimeout dentro del otro setTimeout. Si añades un tiemeout mayor de 2 segundos o tu código tarda más en ejecutarse que el tiemeout exterior (2 segundos), vas a terminar haciendo click en el botón enviar del siguiente item de la lista, ya que la función se ejecuta tarde. Una mejor solución sería utilizar promesas junto a async await para asegurarnos de que todo se ejecuta en el orden correcto. Es decir, en vez de hacer un timeout por cada i*2000, hacer un búcle for dentro de una función async y añadir un setTimeout promisificado (con su await al llamarlo) por cada iteración. Así tienes control total del tiempo que espera cada parte.
Así quedaría: const setTimeoutPromise = async (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)); const miScript = async () => { const lista = document.querySelectorAll("#lista a"); for (const enlace of lista) { enlace.click(); // Tiempo arbitrario para esperar a que cargue el servicio. await setTimeoutPromise(1000); const [input, enviar] = [document.getElementById("mensaje"), document.getElementById("aceptar")] if (input == null || enviar == null){ // Así pasamos a la siguiente iteración si no está el input ni el botón de enviar. continue; } input.value = "Gracias"; enviar.click(); // Ya no hace falta poner un timeout extra, la función tarda lo que tarde en responder el servicio y en operar // De esta forma ahorramos tiempo } };
Para que funcione sin problemas por retardos largos del servidor se puede utilizar con una gestión secuencial de eventos de forma recursiva. Porque si por alguna razón el tiempo de respuesta es mayor al retardo agregado, el script puede colapsar.
hermoso, la programación se invento exactamente para esto..., poder automatizar tareas largas y extensas y repetitivas, se siente hermoso, yo hice algo pero con Excel bien sencillo pero útil, de sacar ganancias, gastos y demás
En realidad se resuelve con una llamada asincrona con async, await y Promise. Es muy ineficiente y puede dar errores si al servidor le toma más tiempo en devolver la respuesta
Interesante, se podría aplicar extensa herramienta de Ia para responder adecuadamente al contenido, y de alguna manera hacer saber al interesado el nivel de urgencia el mensaje recibido
una consulta se puede automatizar click para iniciar a una hora un proceso para que el siguiente click escoja una fecha del calendario primero cuando abre el servidor, luego darle click en siguiente y escojer una hora que me presente la web y finalizar manualmente luego yo
¡Excelente video! Muy buena explicación, a mi me gustan las tareas de automatización, yo pensé que se iba a utilizar Puppeteer y solo fue Javascript puro, un código cortito y fácil de leer ¡Y en la consola! Impresionante ¡Gracias! 👍👍
De que manera se puede implementar una funcion dentro de un bucle, que deba esperar a que el servidor retorne la respuesta de un request para continuar con el for? ejemplo: se deben subir x cantidad de documentos en orden, uno por uno, pero sin implementar la multiplicacion del index*2000, pues hay documentos que demoran mas en su proceso (mas de X segundos) y se debe garantizar el orden.
Jujuy que brillante, ciertamente hay muchas maneras de hacer más eficiente pero nada como para solucionar un trabajo repetitivo accediendo al dom; lo que mas me gusta de tus vídeos es que explicas con pelos y señales (es decir como le haces con tu teclado o muse para que cada cosa suceda.) Gracias por compartir.
Una vez elimine así 500 videos o más de Ver más tarde en TH-cam, ya que youtube no cuenta con un botón de eliminar todos esos videos de una vez, y era un trabajo que hecho a mano me hubiera demorado días en hacerlo, pero con un Script que hice en consola me demoro 20min aprox.
y no era mas facil ver que datos enviaba en la peticion api y hacerlo con un Promise.all() fetch y los datos de la lista ? creo que no era necesario interactuar con el dom
buena men me sirvio mucho , te doy una idea deberias hace un video donde pones un numero de DNI y luego con eso sacar ejemplo su ruc ,su seguro , luego que guarde esos resultados en pdf en un carpeta . Buen video hermano
Como alguien que tiene cierta afición a la programación y esta aprendiendo JS, la verdad es que esto me sorprendió, espero algún día poder usarlo en la vida real y no solo como prueba (me hace cierta ilusión)
Buen día, soy yo de nuevo, como puedo simular el presionar la techa enter? jajaja Editado: se puede simular la tecla enter con document.(element).dispatchEvent(new KeyboardEvent('keyup', {'key':'Enter'} )) pero por alguna razón la pagina no detecta los id's y rutas de js (parece haber un bug?)😢
Genial tu explicacion…sencilla, directa y funcional. Solo tengo una inquietud o duda y es si al dar click en registrar el comentario, la aplicacion se diseño para que al realizar dicha accion se recargue toda la pagina. Para este caso, el foreach se reiniciaria o continuaria con el conteo ?? Agradezco mucho tu explicacion y gracias por tus videos.
Buenísimo! Quisiera hacer una automatización que me permita copiar texto desde una web, enviarlo y pegarlo en un editor sin tener que alternar ventanas (para hacer resúmenes). Podrías orientarme si crees que es posible hacerlo con JS o debiera ser un programa separado en otro lenguaje? Que métodos debiera investigar ? Supongo que debe ser complejo, pero agradezco cualquier orientación para empezar.
Pudiera ser con NodeJS (que a fin de cuentas es Javascript) o Python, porque como lo hice en este video no podridas ya que el código solo se ejecuta en tu navegador, no tiene acceso al editor para pegar lo que hayas pegado.
@@FalconMasters ayuda estoy tratando de hacer una tarea repetitiva pero me sale este error uncaught typeerror cannot set property of null (setting 'value')
@@FalconMasters bro estoy intentando ejecutar este tutorial th-cam.com/video/xFo8iTY9CJk/w-d-xo.html no se casi nada de programación pero necesito automatizar una tarea repetitiva, tienes un correo al cual contactarte porfa :(
oye falcon pero si no existiera el boton de enviar y no pudieras ejecutar el evento.click(), como simularias un keypress=enter? o simlarias el presionar enter?
Master pregunta hay alguna combinación de teclas como por ejemplo en word para copiar y reemplazar una palabra en la consola de Google Chrome? Muchas gracias
Como plus, Como mejorar - optimizar más este código? Rpta... -El problema radica en ese intervalo con tiempo en segundos fijos, Ya que no siempre el servidor se demora el mismo tiempo en cargar los archivos Entonces como optimizaríamos aun más ese código? -Para ello se utilizan promesas y asincronismo, que también son funcionalidades de js, sirven para "detener" la ejecución de un bloque de código, hasta que carguen los archivos necesarios para seguir trabajando. Investíguenlo, es increíble lo que se lograría hacer Pdta. Optimizar no siempre es sinónimo de reducir la cantidad de líneas.
Yo preferiría identificar cuando el texto cargue, y usar setTimeout como última alternativa, Pero lo resolviste como lo hubiera hecho y aún así aprendí un par de cosas. ¡Jajaja salu2! 😎
Hola Falcon, estoy empezando en esto de la programación y tengo una idea que todavía no tiene formar para automatizar en java. Tienes algún correo o un contacto para comentártela y poder saber tus recomendaciones u opiniones, quedo muy agradecida-Saludos desde Colombia.
Me gustó mucho, pero tengo una duda. ¿Hay alguna forma de saber el momento en el que el contenido carga? Esto sería muy útil para no esperar 2s en cada envío (porque qué pasa si tarda más de 2s).
Si te gusto este video dale manita arriba 👍
Y no olvides suscribirte para mas tutoriales de desarrollo web.
Hola muchas gracias por el contenido, una pregunta, si el contenido tarda mas de un segundo ? O tarda mas ?
@@mickyorleans1760 Pues salta al siguiente elemento y no responde ese.
@Juan Prz la idea para que no se tarde ese segundo es y no este "hardcodeado" seria hacer async a la funcion y await ni bien carga la data, responder enviar y seguir con el siguiente
PD: ahora sabemos como FalconMasters responde nuestros emails un saludo y muy buen video
Muy buen contenido y estuve pensando y supongo que con este método Se pueden hacer bots para spamear no?
he intentado usar el buscador de youtube para buscar ciertas palabras con el codigo que enseñaste pero aparecen muchas mas cosas, no es como que todo viene en lista como el formulario que tu creaste para este video
Mensaje: Hola, se murió el abuelo.
Respuesta: Gracias
jajajajajajajaj
JAJJAJSJJSJJAAJSJS
Respuesta registrada
JAJAJAJA
Mensaje: hola se murio la abuela , gracias. Mensaje: Hola se murió el tío, gracias xD
No sabía hacer esto.
La sensación que se siente cuando se aprende algo nuevo y se entiende es impagable.
Gracias por regalar este conocimiento y de la manera que lo hacés!
Saludos
Man, después de años me volvió a salir unos de tus videos.
No sabes la gran ayuda que fuiste hace ya más de 5 años. Tus videos fueron una parte clave por la cual me empezó a gustar el front-end y por lo que ahora a eso me dedico.
Muchas gracias por todo tu contenido, sigue así!
Muchas gracias, me alegra que mis videos te hayan sido y continúen siendo de mucha ayuda!
Muy buen video, me gusto mucho y aunque el código fue sencillo (que esta bien), ayuda a ampliar mi lógica de programación, ¡nunca se termina de aprender!
Cuando un wipe juntos ?
@@defacerteam4693 jaja no sabes que ganas tengo pero ando sin grafica ahora ;(
@@gvstv_ pasa tu user de steam y luego en un futuro jugamos :)
Siempre me fallaban los setTimeout() dentro de bucles. Gracias a ti aprendí como conseguirlo con el truquito del index.
Buen vídeo Falcon!
Si, tienen su truco.
es muy mala idea... mejor iterar el array usando un bucle for y ejecutar una función asíncrona dentro de cada iteración. Para estos casos evitar Array.foreach que le pasa un callback a cada elemento
Es ineficiente y una muy mala forma. no la recomiendo
@@kingskull619 Pues a mi me funciono a la perfección para esa tarea.
@@FalconMasters Y esta perfecto a mi me gusto tu video, pero como dijiste puede mejorarse, setTimeOut envia a la queue de eventos tareas "asincronas" que se acumulan, primero acumulas tareas al paso del foreach que termina primero enviando los setTimeout al queue, y luego se van desencolando con tu time*index, cuando no son muchas esta perfecto, cuando son millones, pueden pasar dos cosas, un error por indexOutBound, derivado de una multiplicacion imposible que sale del rango de numerico, o que se acumulen muchos setTime en el eventqueue y muera. Toma en cuenta que tienes dos setTimeAnidados nos da un toal de O(n^2) de espacio de memoria para el algoritmo, algo que puede ser problematico
Excelente video, solo una recomendación. En vez de estar copiando y pegando el código para no perderlo puedes hacer clic en el icono con forma de libro que tiene un punto azul del lado derecho y abrirá un editor de texto multilínea del lado izquierdo donde el código permanecerá sin necesidad de copiar y pegar constantemente, escribes tu código y le das en el botón de ejecutar, si falla arreglas y ejecutar de nuevo, espero te sea de ayuda
Si algún día te sientes triste y deprimido, recuerda que hay desarrolladores web que no conocen el canal de falconMasters ni fazt
ni yacklion
ni jonmircha, ni Kevin Powell
Fazt es el papá de los pollitos. Le sabe a TODO haha
QUIEN ERES TU
jajajaj buena!
Genial vídeo Maestro! No solo es el desarrollo sencillo pero inteligente del tutorial, sino la orientación e intención del mismo. Este vídeo demuestra, una vez más, su excelente calidad como instructor y su intención de abordar áreas que otros ni siquiera han pensado. Este vídeo es inspirador para hacer muchas otras cosas, si se sabe aprovechar. Gracias!!! Que continúen los éxitos. Saludos cordiales!
Parce, con todo respeto, usted es una berraquera, muy teso, gracias por compartir todo su conocimiento con nosotros los mortales...
Gracias Falcon
Que genial al inicio pensé que era con un documento externo, pero al recargar la página no estaria ese valor, pero que loco la forma en que lo hiciste, te ahorras tiempo, buen video!!
¡Dando catedra como siempre Master! Excelente contenido 👏👏
Excelente video! Muy claro para quienes estamos empezando… Un abrazo desde Medellín
Hoy aprendí por lo menos 3 cosas y este video tiene 5 de ellas. Me gustó mucho la explicación, saludos.
Como detecta la variable index que se refiere precisamen al index de los elementos, valga la redundancia, ya que el "enlace" es sólo valor de referencia de como sera llamado dentro de los corchetes, sin embargo es distinto con el index
Buen video, se me ocurren cosas como validar el comentario, filtrar palabras clave o palabras no permitidas y en base al contenido publicado pues generar una respuesta especifica. Además de eso se puede almacenar toda la información para posteriormente generar algún tipo de "reporte" dando una salida con algún formato como csv para poder visualizarlo posteriormente en excel, saludos!
Este era un ejemplo muy sencillo, pero tienes razón se pueden hacer un montón de cosas.
@@FalconMasters si claro se entiende y se agradece enormemente pero esque uno es inquieto por naturaleza, saludos.
@@FalconMasters¿Conoces si existe alguna comunidad o club de programadores que aprendan en compañía y hagan pequeños proyectos juntos? No sé, algún servidor de Discord o IRC. Me gusta y se me da bien pero lo hago solo cada día frente a la computadora, tengo buenas ideas pero no lo comparto con nadie.
Aprendí eso de que para que el tiempo se vaya esperando en tantos segundos, porque me sucedía el mismo error de lo al comienzo que se ejecutaba todo de una solo , y ahora ya de que es así... Gracias
pensé que al hacer el querySelectorAll si querias iterar por esto tenias que si o si hacer un Array.from de ese node list o no funcionaba, buen video amigo
Es una solución rápida aunque un poco "bruta" al problema, una posible optimización y mejor práctica es independizar cada click de la lista ejecutando un proceso asíncrono y dentro de este proceso reemplazar la espera de 1 segundo de la carga por una promesa que espere hasta que la data esté cargada para responder el mensaje, creo que puede reducir el tiempo de ejecución hasta menos de 30 segundos o 1 minuto y es menos propenso a que falle por una demora en la respuesta del server.
has un video tu a ver si muy chingon.
@@cristiannajera5147 Por qué la ofensa si tiene toda la razón? Incluso el mismo autor del video menciona que su código se puede mejorar y utilizar el concepto de promesas sería una solución mucho más óptima y aún así no desacredita lo que se realizó en el video.
Hola, según el video e intentado automatizar búsquedas en TH-cam pero no funciona igual sabes porque.?
@@mejoresanime485 el problema del video es un caso básico, donde tienes todo cargado y listo para solo esperar lo que manda una db y hacer un click, una búsqueda de youtube es más compleja porque son consultas completas donde responde con el html completo, sesión, tokens, etc. para eso ya debes aplicar la técnica de webscraping donde creas un bot que simule ser un humano navegando, te recomiendo investigar sobre selenium y python, con eso te irá bien.
Lo malo de selenium es que me obliga a a loguearme a mi cuenta para poder crear un post en una web y que además se abre en otra ventana y no funciona en la que estoy utilizando, me ha dado bastantes problemas porque parece ser que se ha actualizado a la versión 4 y muchos sino todos los vídeos enseñan con selenium antiguo que no funciona hoy día.
Pero bueno, he avanzado poco a poco, he conseguido loguearme, pero, al entrar en la cuenta me aparece un mensaje de la cookies y de recordar la contraseña, esto hace que no se siga ejecutando el resto del scri0t, que básicamente es rellenar dos campos de texto, hacer click en un botón y enviar.
Pero bueno, ya lo solucionaré.
Solo nosotros podemos apreciar la grandeza de ese código... un simple mortal solo diría: -Ese es su trabajo.
Buenísimo!! Yo pensaba aprender Macros para hacer algo así, pero NEL ahora sé que puede con Javascript, Gracias!
X2
Este tipo tiene un talento increible para enseñar
Excelente video muy buena idea la que nos compartes, pero un comentario para la comunidad en general cuando desarrollen sitios web o sistemas distribuidos, uno de los puntos fuertes de la seguridad es evitar la inyección de código, así que mucho cuidado con su código :P . Saludos
Genial. Muchas gracias por tu tiempo para enseñar.
Que excelente video. Enserio eres un master. Gracias por compartir tus conocimiento y habilidades.
Buen vídeo, para la gente que está aprendiendo también es necesario saber que este método puede fallar si la petición tarda más de lo esperado en obtener la pregunta o actualizar la base de datos con el nuevo mensaje. Mirad funciones asíncronas, promesas etc
Cuidado con el setTimeout dentro del otro setTimeout. Si añades un tiemeout mayor de 2 segundos o tu código tarda más en ejecutarse que el tiemeout exterior (2 segundos), vas a terminar haciendo click en el botón enviar del siguiente item de la lista, ya que la función se ejecuta tarde.
Una mejor solución sería utilizar promesas junto a async await para asegurarnos de que todo se ejecuta en el orden correcto. Es decir, en vez de hacer un timeout por cada i*2000, hacer un búcle for dentro de una función async y añadir un setTimeout promisificado (con su await al llamarlo) por cada iteración. Así tienes control total del tiempo que espera cada parte.
Así quedaría:
const setTimeoutPromise = async (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
const miScript = async () => {
const lista = document.querySelectorAll("#lista a");
for (const enlace of lista) {
enlace.click();
// Tiempo arbitrario para esperar a que cargue el servicio.
await setTimeoutPromise(1000);
const [input, enviar] = [document.getElementById("mensaje"), document.getElementById("aceptar")]
if (input == null || enviar == null){
// Así pasamos a la siguiente iteración si no está el input ni el botón de enviar.
continue;
}
input.value = "Gracias";
enviar.click();
// Ya no hace falta poner un timeout extra, la función tarda lo que tarde en responder el servicio y en operar
// De esta forma ahorramos tiempo
}
};
Genial, esto me da una idea de como automatizar pruebas de software. Saludos
Felicitaciones. Saludos desde Venezuela.
Perfecto el razonamiento, Carlos Arturo!!!
Para que funcione sin problemas por retardos largos del servidor se puede utilizar con una gestión secuencial de eventos de forma recursiva. Porque si por alguna razón el tiempo de respuesta es mayor al retardo agregado, el script puede colapsar.
Que belleza gracias !!
hermoso, la programación se invento exactamente para esto..., poder automatizar tareas largas y extensas y repetitivas, se siente hermoso, yo hice algo pero con Excel bien sencillo pero útil, de sacar ganancias, gastos y demás
Me abriste mil puertas. Gracias
En realidad se resuelve con una llamada asincrona con async, await y Promise. Es muy ineficiente y puede dar errores si al servidor le toma más tiempo en devolver la respuesta
Buen ejemplo de automatización!
Excelente explicación!!! Muchas gracias, me sirvió mucho en el trabajo. Saludos! :D
Interesante, se podría aplicar extensa herramienta de Ia para responder adecuadamente al contenido, y de alguna manera hacer saber al interesado el nivel de urgencia el mensaje recibido
Excelentemente bien explicado. Gracias por tu contenido.
Super útil video! Gracias!!
Necesitaba este video, gracias crack.
Grande bro, ahora ahora recuerdo que tenia pendiente aprender Javascript.
una consulta se puede automatizar click para iniciar a una hora un proceso para que el siguiente click escoja una fecha del calendario primero cuando abre el servidor, luego darle click en siguiente y escojer una hora que me presente la web y finalizar manualmente luego yo
wow amigo, esto tiene mucho potencial.
Eres todo un master, buen habla fue lo que mas me gusto 👍
Que genial.. aunque yo hubiera pensado usar mejor async await o promesas no recuerdo bien si es lo mismo hehe.. saludos
¡Excelente video! Muy buena explicación, a mi me gustan las tareas de automatización, yo pensé que se iba a utilizar Puppeteer y solo fue Javascript puro, un código cortito y fácil de leer ¡Y en la consola! Impresionante ¡Gracias! 👍👍
like + suscrito 🤘 , gracias por el video, me quiero meter en el mundo de la automatización, supongo que tu canal me va a venir super bien 👍
De que manera se puede implementar una funcion dentro de un bucle, que deba esperar a que el servidor retorne la respuesta de un request para continuar con el for?
ejemplo: se deben subir x cantidad de documentos en orden, uno por uno, pero sin implementar la multiplicacion del index*2000, pues hay documentos que demoran mas en su proceso (mas de X segundos) y se debe garantizar el orden.
Jujuy que brillante, ciertamente hay muchas maneras de hacer más eficiente pero nada como para solucionar un trabajo repetitivo accediendo al dom; lo que mas me gusta de tus vídeos es que explicas con pelos y señales (es decir como le haces con tu teclado o muse para que cada cosa suceda.) Gracias por compartir.
un mensaje automatizado jejeje.
Una vez elimine así 500 videos o más de Ver más tarde en TH-cam, ya que youtube no cuenta con un botón de eliminar todos esos videos de una vez, y era un trabajo que hecho a mano me hubiera demorado días en hacerlo, pero con un Script que hice en consola me demoro 20min aprox.
Eres un capo ....gracias por El video
Woo!! Que aporte y excelente video para poder automatizar la tarea. Muchas gracias por compartir aún mas tus conocimientos.
Muchas gracias eh aprendido mucho
eres un crack brother ...
y no era mas facil ver que datos enviaba en la peticion api y hacerlo con un Promise.all() fetch y los datos de la lista ? creo que no era necesario interactuar con el dom
Muy bueno, muchas gracias.
buena men me sirvio mucho , te doy una idea deberias hace un video donde pones un numero de DNI y luego con eso sacar ejemplo su ruc ,su seguro , luego que guarde esos resultados en pdf en un carpeta . Buen video hermano
Maravillosa jugada!
Genial. Gracias por compartir
Datazo, muchas gracias
Buenas Como hago para crear de cero un QR o una especie de api y cuando lo escanea me muestre unas o varias imágenes o un pdf gracias
éste código es fácil de entender pero, me preguntaba que ¿ No sería mejor usar async-await en lugar de setTimeOut ?
Ahí va el like y la subs buen hombre!!! GRACIAS!!!
Muchas gracias!
Súper genial!!!!
Como alguien que tiene cierta afición a la programación y esta aprendiendo JS, la verdad es que esto me sorprendió, espero algún día poder usarlo en la vida real y no solo como prueba (me hace cierta ilusión)
Buen día, soy yo de nuevo, como puedo simular el presionar la techa enter? jajaja
Editado:
se puede simular la tecla enter con document.(element).dispatchEvent(new KeyboardEvent('keyup', {'key':'Enter'} ))
pero por alguna razón la pagina no detecta los id's y rutas de js (parece haber un bug?)😢
muy buen video , se podría hacer de forma dinámica para que detecte el tiempo de respuesta de la Api
Hola te queria consultar si podes automatisar hacer una cuenta de play station y volcar los datos en un exel?
En el caso de usar una base de datos real el SetTimeout cambiaría por async/await ?
Genial! Gracias!
Como se haría para dar clic pero con el botón secundario del mouse?
Se puede hacer lo mismo si la app esta hecha con angular? No puedo cambiarle los valores pero si hacer los clicks
Excelente. Estoy trabajando en obtener una cookie que me envían cuando me logeo pero no se como m puedes ayudar es con código como lo quiero obtener
Genial tu explicacion…sencilla, directa y funcional.
Solo tengo una inquietud o duda y es si al dar click en registrar el comentario, la aplicacion se diseño para que al realizar dicha accion se recargue toda la pagina. Para este caso, el foreach se reiniciaria o continuaria con el conteo ??
Agradezco mucho tu explicacion y gracias por tus videos.
Buenísimo! Quisiera hacer una automatización que me permita copiar texto desde una web, enviarlo y pegarlo en un editor sin tener que alternar ventanas (para hacer resúmenes). Podrías orientarme si crees que es posible hacerlo con JS o debiera ser un programa separado en otro lenguaje? Que métodos debiera investigar ? Supongo que debe ser complejo, pero agradezco cualquier orientación para empezar.
Pudiera ser con NodeJS (que a fin de cuentas es Javascript) o Python, porque como lo hice en este video no podridas ya que el código solo se ejecuta en tu navegador, no tiene acceso al editor para pegar lo que hayas pegado.
@@FalconMasters Gracias
@@FalconMasters ayuda estoy tratando de hacer una tarea repetitiva pero me sale este error uncaught typeerror cannot set property of null (setting 'value')
@@shirohige85 El error te dice que no puede asignar una propiedad porque a lo que estas intentando asignarla, no existe.
@@FalconMasters bro estoy intentando ejecutar este tutorial th-cam.com/video/xFo8iTY9CJk/w-d-xo.html no se casi nada de programación pero necesito automatizar una tarea repetitiva, tienes un correo al cual contactarte porfa :(
Muchas gracias por el video. Great!
oye falcon pero si no existiera el boton de enviar y no pudieras ejecutar el evento.click(), como simularias un keypress=enter?
o simlarias el presionar enter?
Hay un video explicando el código de "aplicación.js"?
Que buen video 👏🏼👏🏼👏🏼
Esto podría aplicar para una página de recompensas de Google en la que respondes preguntas
Muchas gracias!!
Master pregunta hay alguna combinación de teclas como por ejemplo en word para copiar y reemplazar una palabra en la consola de Google Chrome? Muchas gracias
hola se podria generar aparte la lista en excel o txt
Como plus, Como mejorar - optimizar más este código?
Rpta...
-El problema radica en ese intervalo con tiempo en segundos fijos, Ya que no siempre el servidor se demora el mismo tiempo en cargar los archivos
Entonces como optimizaríamos aun más ese código?
-Para ello se utilizan promesas y asincronismo, que también son funcionalidades de js, sirven para "detener" la ejecución de un bloque de código,
hasta que carguen los archivos necesarios para seguir trabajando. Investíguenlo, es increíble lo que se lograría hacer
Pdta.
Optimizar no siempre es sinónimo de reducir la cantidad de líneas.
Falcon tienes un curso de JS actualizado? El que subiste a youtube es de hace años. Si hay un curso nuevo quiero comprarlo
Yo preferiría identificar cuando el texto cargue, y usar setTimeout como última alternativa, Pero lo resolviste como lo hubiera hecho y aún así aprendí un par de cosas. ¡Jajaja salu2! 😎
Hola Falcon, estoy empezando en esto de la programación y tengo una idea que todavía no tiene formar para automatizar en java. Tienes algún correo o un contacto para comentártela y poder saber tus recomendaciones u opiniones, quedo muy agradecida-Saludos desde Colombia.
Como puedo hacer un while en el navegador? lo quiero utilizar para automatizar una tarea pero se cuelga
Estoy intentando hacer una automatizacion pero me encontre con algunos problemas, me puedes ayudar? pagaria por tu servicio
Esto es de gran ayuda ❤️
se pudo haber hecho con onload() o asincronismo verdad?
Me encanta! Muchas gracias. Tengo una duda, ¿qué ventaja tiene o desventaja con respecto a hacerlo con Python y Selenium?
También para automatizar pruebas en el navegador se utiliza Selenium 😄
Huaw para mi esto es algo sorprendente 🤔esta fuera de mi imaginación.
Me gustó mucho, pero tengo una duda. ¿Hay alguna forma de saber el momento en el que el contenido carga? Esto sería muy útil para no esperar 2s en cada envío (porque qué pasa si tarda más de 2s).
Tengo en mente hacer este proyecto pero con varias páginas web
Que buen video, yo lo hubiera hecho con una macro en mi mouse.
¿Se puede agregar código html a la respuesta?, se me ocurre para mandar correos publicitarios desde un correo personal para no aparecer en spam.
Yo tengo un problema y esque no he podido poner @media quaries de manera correcta
mUY BUEN ejemplo!!!