elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Como escribir en un input con javascript?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Como escribir en un input con javascript?  (Leído 6,684 veces)
**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
[Pregunta]: ¿Como escribir en un input con javascript?
« en: 29 Agosto 2021, 20:25 pm »

Como dice el titulo , parece sencillo pero no lo logro.

Intento iniciar sesión en Netflix : https://www.netflix.com/login

Pero al escribir en el campo, por alguna razón es como si no lo hubiera escrito.

Código
  1. document.getElementById('id_userLoginId').value = 'UserEmail';

Incluso intente escribir en el atributo directamente, pero no funciona :

Código
  1. document.getElementById('id_userLoginId').setAttribute('value', 'UserEmail');

Espero puedan ayudarme , Gracias de antemano.




En línea



MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #1 en: 29 Agosto 2021, 20:43 pm »

El problema es que debe estar guardando los inputs en algún estado.

Por ejemplo:

Código
  1. let myInput = document.querySelector('#myInput');
  2.  
  3. {
  4.    let state = '';
  5.    myInput.addEventListener('input', (e) => {
  6.        state = e.currentTarget.value;
  7.    });
  8.  
  9.    myInput.addEventListener('focus', (e) => {
  10.        e.currentTarget.value = state;
  11.    });
  12. }

Y si la página envía los valores directos desde este estado pues no tiene ni caso intentar hacer submit si no puedes escribir al estado directamente (y por lo general esto es así).


« Última modificación: 29 Agosto 2021, 20:45 pm por MinusFour » En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #2 en: 29 Agosto 2021, 21:10 pm »

vale, entonces no puedo hacerlo ?

otra pregunta, sabes como funcionan los navegadores para llenar el campo user/password guardados en el navegador? , osea google chrome me auto completa el user en netflix perfectamente, pero no se como trabaja....  :-\

de todos modos, gracias.
En línea



MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #3 en: 29 Agosto 2021, 23:34 pm »

vale, entonces no puedo hacerlo ?

otra pregunta, sabes como funcionan los navegadores para llenar el campo user/password guardados en el navegador? , osea google chrome me auto completa el user en netflix perfectamente, pero no se como trabaja....  :-\

de todos modos, gracias.

Pues, en teoría debes poder simular un evento que provoque el cambio. Sin embargo, estuve probando bastante formas de enviar esos eventos y simplemente no pude reproducir el evento.

Del auto fill de google chrome no se como trabaja tampoco.

Edit: Vaya pues, es algo de React... Se está ahorrando eventos de una manera que todavía no comprendo muy bien. Aquí una función correcta (sacada de SO).

Código
  1. const triggerInputChange = (node, inputValue) => {
  2.      const descriptor = Object.getOwnPropertyDescriptor(node, 'value');
  3.  
  4.      node.value = `${inputValue}#`;
  5.      if (descriptor && descriptor.configurable) {
  6.        delete node.value;
  7.      }
  8.      node.value = inputValue;
  9.  
  10.      const e = document.createEvent('HTMLEvents');
  11.      e.initEvent('change', true, false);
  12.      node.dispatchEvent(e);
  13.  
  14.      if (descriptor) {
  15.        Object.defineProperty(node, 'value', descriptor);
  16.      }
  17. }

Los inputs que crea react tienen setters y getters en value especiales para evitar que se creen varios eventos cuando el input no ha cambiado. Por eso agrega el nuevo texto con un # primero para simular que haya un cambio de texto.
« Última modificación: 30 Agosto 2021, 00:07 am por MinusFour » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #4 en: 2 Septiembre 2021, 03:10 am »

Probablemente no te funcione porque no estás llegando al objeto, primero asegúrate de que document.getElementById('id_userLoginId') resuelva el objeto y que sea un input válido, prueba un console.log(). Por ejemplo, puede ser que tu escript se esté ejecutando antes del renderizado y por ende no esté llegando al input porque el input aun no está escrito, también puede ser que el campo no sea un input sino una división que por debajo rellena un input invisible. Primero verifica que estés llegando al objeto. ¿Estás usando greasymonkey?, si es así debes llamar al document onload como evento para que se ejecute después del renderizado.

Saludos.
En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #5 en: 4 Septiembre 2021, 21:36 pm »

Hola, gracias por las respuestas.

Al final así lo resolví:

Activamos el Foco en el Input :

Código
  1. document.getElementById('id_userLoginId').focus();

Convierto el String, en este caso el correo : Example@gmail.com en un array Char lo recorro y lo envio como pulsacion de tecla usando el motor Web, en este caso uno basado en Chromium (EO.WebBrowser) .

Código
  1.  Dim TextArray() As Char = UserString.ToCharArray
  2.  
  3.            For Each element As Char In TextArray
  4.                 WebView1.SendChar(element)
  5.            Next

Hago lo mismo con el campo Password. y posterior mente hago click el el boton de login. y listo, Funciona!. Asi me logeo en Netflix.



En línea



WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #6 en: 4 Septiembre 2021, 21:43 pm »

Si quieres hacer login desde una app externa que no sea el navegador web talves podrías pensar en utilizar algo que ya esté diseñado para eso como por ejemplo https://www.selenium.dev/

Recuerda que si tu desarrollo estará hecho en visual basic significará que no será multiplataforma porque solo funcionará en windows y dejarás fuera a todos los que usan mac o linux.

Saludos.
En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [Pregunta]: ¿Como escribir en un input con javascript?
« Respuesta #7 en: 10 Septiembre 2021, 23:31 pm »

Que estás intentando hacer??

Como te comentan, el formulario ese esta hecho con React y meneja un estado, acabo de comprobarlo, cuando modificas el campo #id_userLoginId no se modifica el state.

Lo que si podes hacer es usar  Puppeteer. Yo asi logre crear un bot para Whatsapp usando su version web.

El libreria te permite lanzar una instancia de Chomium/Chrome y poder simular las pulsaciones de teclas como lo haría un humano, porque ya no estarías haciendo magias con JS, sino que le decís al propio browser que envié esas señales (pulsación de tecla, click, etc) a la web.

Dicha herramienta en realidad fue creada para automatizar pruebas web E2E, pero uno también puede darle estos usos malignos (?   :xD
« Última modificación: 10 Septiembre 2021, 23:33 pm por [u]nsigned » En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con input box y javascript
Desarrollo Web
^kazike^ 0 3,005 Último mensaje 22 Julio 2010, 16:20 pm
por ^kazike^
[Pregunta]: ¿Como puedo vaciar un input type FILE?
Desarrollo Web
Leguim 2 2,900 Último mensaje 17 Febrero 2019, 14:57 pm
por Leguim
[Pregunta]: INPUT CON javascript (DINERO)
Desarrollo Web
Leguim 3 2,353 Último mensaje 28 Abril 2019, 06:16 am
por Leguim
[Resuelto] [Pregunta]: Input sólo letras con javascript
Desarrollo Web
Leguim 3 3,140 Último mensaje 27 Septiembre 2019, 16:08 pm
por MinusFour
[Resuelto] [Pregunta]: Primer letra de un input en mayuscula (javascript)
Desarrollo Web
Leguim 4 2,824 Último mensaje 27 Septiembre 2019, 22:23 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines