Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2023
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Encontré una solución

Eureka!!!!!!! Lo encontré.

Respondo para los que hayan tenido el mismo problema que yo.
He visto de casualidad una función de javascript (no sé ni donde la encontré) y al implementarla he podido llegar a la solución.


Si alguien más sabio sabe interpretarla que me la explique
He añadido una variable booleana para que solo lo haga una vez, ya que si se vuelve a ejecutar te saca del login.


Código Delphi [-]
procedure TForm2.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser;
  IsSuccess: Boolean; WebErrorStatus: TOleEnum);
begin
 if (Unavez=false) then
   begin
  EdgeBrowser1.ExecuteScript('document.querySelector("input[type=text]").value="tunif22222222A";');
  EdgeBrowser1.ExecuteScript('document.querySelector("input[type=password]").value="tupassword";');
  EdgeBrowser1.ExecuteScript('document.querySelector("input[type=submit]").click();');
   Unavez:=true;
   end;
end;

Última edición por dec fecha: 30-03-2023 a las 08:46:29. Razón: Poner etiquetas Delphi
Responder Con Cita
  #2  
Antiguo 30-03-2023
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por alquimista Ver Mensaje
[...] el código que he usado es:
Código Delphi [-]
procedure TForm2.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser;
  IsSuccess: Boolean; WebErrorStatus: TOleEnum);
begin
  EdgeBrowser1.ExecuteScript('document.getElementById("usuario").value = "23232323A";');
  EdgeBrowser1.ExecuteScript('document.getElementById("password").value = "password";');
  EdgeBrowser1.ExecuteScript('document.getElementById("submit").click();');
end;


Pero no obtengo nada. Ni me da error.
Lo que sucede es que los "inputs" no tienen un atributo "id", por lo que "getElementById" retorará "null" y por eso no te funciona como esperas.

Respecto de "getElementsByName", este método retorna un array de elementos: sí que podría retornarte los elementos en cuestión, porque, sí tienen atributo "name", pero, el código JS a ejecutar debería quedar tal que así:

Código:
document.getElementsByName("usuario")[0].value = '23232323A';

Cita:
Empezado por alquimista Ver Mensaje
Eureka!!!!!!! Lo encontré.
En efecto, "querySelector" es, por decirlo de alguna manera, más potente que los métodos mencionados, porque, permite seleccionar elementos mediante "selectores", no sólo mediante sus atributos "id" o "name".

De hecho, el código que ejecutas podría utilizar ahora el atributo "name", evitando así seleccionar otros posibles "inputs" que existiesen en la página del tipo que indicas, es decir, podrías usar algo como esto:

Código:
document.querySelector("input[name=usuario]").value="tunif22222222A";
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 30-03-2023
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Probé con
Código:
  EdgeBrowser1.ExecuteScript('document.getElementsByName("usuario").value = "23232323A";');
pero no hacía nada. Lo del ById, efectivamente en la página no había Id, no funcionó.

Probaré con lo último que has puesto a ver que pasa.
Código:
document.querySelector("input[name=usuario]").value="tunif22222222A";
Un saludo
Responder Con Cita
  #4  
Antiguo 30-03-2023
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por alquimista Ver Mensaje
Probé con
Código:
  EdgeBrowser1.ExecuteScript('document.getElementsByName("usuario").value = "23232323A";');
pero no hacía nada. Lo del ById, efectivamente en la página no había Id, no funcionó.

Probaré con lo último que has puesto a ver que pasa.
Código:
document.querySelector("input[name=usuario]").value="tunif22222222A";
Un saludo
No es que "getElementsByName" no hiciese nada: lo que ocurre es que ese método retorna un array de objetos, de modo que lo que fallaba era esto: getElementsByName("usuario").value, que, tendría que haber sido algo así: getElementsByName("usuario")[0].value

Respecto de que no pasaba nada... entiendo que te refieres a ningún error, lo que ocurre es que el error se produciría en el contexto de la página web en cuestión. Creo que usando algún evento de "TEdgeBrowser", o, la "consola de desarrollo" del mismo podrías ver dicho error.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 30-03-2023 a las 21:09:59.
Responder Con Cita
  #5  
Antiguo 13-04-2023
Gigolo5236 Gigolo5236 is offline
Registrado
 
Registrado: abr 2023
Posts: 3
Poder: 0
Gigolo5236 Va por buen camino
Por aca también lo ando probado y ya solucione algunas cosas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manipular Contenido XML webmasterplc OOP 3 20-08-2012 16:56:37
manipular la tabla arp dtomeysoto Varios 2 16-09-2011 15:54:47
Manipular winamp ColdFusion Varios 1 04-04-2009 04:20:51
Manipular un CD carlocf Varios 12 14-10-2008 07:12:11
DBLookupComboBox manipular Sayuri Conexión con bases de datos 3 26-07-2005 09:17:02


La franja horaria es GMT +2. Ahora son las 11:17:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi