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 08-10-2005
RazoR RazoR is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Poder: 0
RazoR Va por buen camino
Simular click en submit(imagen) de formularios web

Bueno, les paso a comentar mi duda. Debido a un programa que me habían solicitado necesito completar un formulario web con unos datos y luego apretar el botón submit. Logré completar el formulario web y apretar el botón submit en una página pero al intentar hacerlo donde debía no pude. El problema es que el "botón" submit es una imagen y el código que tenía no me sirve. Acá les muestro la función que uso para completar los campos y simular el click del botón Submit.

Código Delphi [-]
 function TForm1.FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
 var
   i, j: Integer;
   FormItem: Variant;
 begin
   Result := False;
   //no form on document
   if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
   begin
     Exit;
   end;
   //count forms on document
   for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
   begin
     FormItem := WebBrowser.OleObject.Document.forms.Item(I);
     for j := 0 to FormItem.Length - 1 do
     begin
       try
         //when the fieldname is found, try to fill out
         if FormItem.Item(j).Name = FieldName then
         begin
           //FormItem.Item(j).Value := Value; //ESTO ES SI ES UN CAMPO
           FormItem.Item(j).Click; //ESTO ES SI ES UN BOTON
           Result := True;
         end;
       except
         Exit; 
       end;
     end;
   end;
 end;

Si alguien sabe cómo puedo hacer para simular el click de ésta imagen que funciona como botón, lo escucho atentamente
Debo aclarar que hacer un POST method no sirve en éste caso porque para que me valide la operación que estoy haciendo (un login a un sitio) le pasa un parámetro que es un valor hidden creado aleatoriamente al cargar la página.

La página donde está el formulario es ésta:

http://www.criminapolis.com/index.php?f=f

Fíjense que la imagen no tiene seteado un nombre.

Saludos, RazoR

PD: intenté buscar en el foro pero no encontré nada. Es posible que haya buscado mal.

Última edición por RazoR fecha: 08-10-2005 a las 05:13:56.
Responder Con Cita
  #2  
Antiguo 10-10-2005
RazoR RazoR is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Poder: 0
RazoR Va por buen camino
Nadie sabe o no me supe explicar bien?

Última edición por RazoR fecha: 10-10-2005 a las 01:02:47.
Responder Con Cita
  #3  
Antiguo 10-10-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
deberias ver si puedes hacer un post de la pagina directamente, en vez de intentar hacer click sobre el boton o imagen, que al final redundara en el mismo resultado.

Aunque yo, trabajando con OLE y el browser, soy un completo novato.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #4  
Antiguo 11-10-2005
RazoR RazoR is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Poder: 0
RazoR Va por buen camino
Cita:
Empezado por hector
deberias ver si puedes hacer un post de la pagina directamente, en vez de intentar hacer click sobre el boton o imagen, que al final redundara en el mismo resultado.

Aunque yo, trabajando con OLE y el browser, soy un completo novato.
Cita:
Empezado por RazoR
Debo aclarar que hacer un POST method no sirve en éste caso porque para que me valide la operación que estoy haciendo (un login a un sitio) le pasa un parámetro que es un valor hidden creado aleatoriamente al cargar la página.
No sirve por lo de arriba
Responder Con Cita
  #5  
Antiguo 11-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pero los valores hidden no son tan hidden como se dice. Son simples campos que no le aparecen al navegante pero sí que vienen incluídos en la página. Si tienes métodos para leer la información de la página (y creo que con las INDY se puede hacer) entonces basta que leas el valor de ese campo y lo mandes en el POST simulado.

// Saludos
Responder Con Cita
  #6  
Antiguo 11-10-2005
RazoR RazoR is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Poder: 0
RazoR Va por buen camino
Claro, yo puedo obtener los datos de la página pero si hago un post method no sirve el valor hidden que le das porque al hacer el post es como si "usara otra página" para enviar los datos (o eso creo, porque una vez intenté eso y no servía).
Responder Con Cita
  #7  
Antiguo 11-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, a ver. Sigueindo tu código he podido hacer el POST con

Código Delphi [-]
var
  form: Variant;

begin
  form := WebBrowser1.OleObject.document.forms.item(0);
  form.item(0).value := 'usuario';
  form.item(1).value := 'password';
  form.submit;
end;

Manda a una página con el sguiente error:

Cita:
Pasó mucho tiempo desde que apareció la página hasta que intentaste entrar
pero ese error te lo manda aun cuando escribas directamente los datos. Eso sin contar con múltiples errores de JavaScript que tiene el sitio.

// Saludos
Responder Con Cita
  #8  
Antiguo 11-10-2005
RazoR RazoR is offline
Miembro
 
Registrado: sep 2005
Posts: 23
Poder: 0
RazoR Va por buen camino
Claro, yo no recuerdo bien, pero creo que eso te lo tiraba porque usaba session cookies, entonces yo primero pasaba por www.criminapolis.com, luego iba a la página que indiqué para obtener el valor hidden (porque si obtenia el código HTML en www.criminapolis.com, al tener frames, no obtenía el código que quería) y ahí si completaba los datos.
Responder Con Cita
  #9  
Antiguo 11-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Sí. Leí algo en esa página acerca de que tenía que bajar el nivel de seguridad de mi navegador para poder acceder sin problemas. De más está decir que no pienso hacerlo. Pero bueno, ¿te sirvió el método o no?

// Saludos
Responder Con Cita
  #10  
Antiguo 17-03-2011
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Perdon por incomodar

Roman .... ya puedo enviar los parametros correctos a la pagina que necesito y logre hacer click sobre el boton que me valida la informacion con el Webbrowser , pero dos cosas

lo hago asi

primero abro el navegador (seria mejor si no lo hiciera , pero no se como hacerlo


Código:
WebBrowser1.Navigate('https://declaraciones.sri.gov.ec/facturacion-internet/consultas/publico/consulta-validez-documento.jsp');
Segundo

Paso los parametros
Código:
//  form := WebBrowser1.LocationURL('https://declaraciones.sri.gov.ec/facturacion-internet/consultas/publico/consulta-validez-documento.jsp',Sender);
  form := WebBrowser1.OleObject.document.forms.item(0);
  form.item(3).value := '1109285496';
  form.item(4).value := '1307109957001';
  form.item(6).value := '001';
  form.item(7).value := '001';
  form.item(8).value := '0144887';
  form.submit;
Y la pagina me valida perfectamente , pero como puedo saber o como puedo leer el texto que me aparece indicando que mi información esta correcta ?

Gracias de antemano
__________________
IVAND
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


La franja horaria es GMT +2. Ahora son las 08:34:08.


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