Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   ¿Como completar datos en una pagina Web mediante codigo? (https://www.clubdelphi.com/foros/showthread.php?t=86971)

lamasdf 30-10-2014 01:43:03

¿Como completar datos en una pagina Web mediante codigo?
 
Estimado Foro.

Tengo el siguiente problema. Deseo escribir un software en el cual cargue una pagina web con un WebBrowser. Es una pagina que me pide ingresar un usuario y una clave, la cual quiero ingresarla automaticamente mediante codigo. Una vez que ingreso a la pagina debo ingresar a unas pestañas para seleccionar ventas y luego tengo que llenar tres casilleros para luego enviarlos, esto quiero hacerlo mediante codigo.
Para que la pagina funciones se debe instalar primero FlashPlayer.

¿Como puedo hacer el llenado y hacer los click a los botones de la pagina web mediante codigo?

Para que tengan una mejor idea. Pueden probar

teleexpress.com.ar

Usuario loly3
Clave loly

Desde ya muchas gracias por sus respuestas.

Neftali [Germán.Estévez] 30-10-2014 10:25:13

A mi me dice que la página no está disponible.
:confused:

dec 30-10-2014 10:59:01

Hola,

Cita:

Empezado por Neftali (Mensaje 483990)
A mi me dice que la página no está disponible.
:confused:

Puedes probar con www.teleexpress.com.ar

Neftali [Germán.Estévez] 30-10-2014 14:08:32

Ahora sí.
Personalmente al estar hecha en flash, no se cómo seguir.
A ver si alguien más puede dar una pista.

mamcx 30-10-2014 16:16:25

Si no eres dueño de ese sitio/tienes permiso, no hagas rarezas.

Flash no es amigable para automatizacion. Si tienes acceso al codigo, entonces haz un API web. Lo que queda de opciones es complicado:

http://stackoverflow.com/questions/3...ng-selenium-rc

lamasdf 30-10-2014 18:01:29

Tengo autorizacion para usar la pagina y de generar nuevos usuarios y claves. Lo que quiero es automatizar el llenado de los casilleros y generar click a los botones de la pagina web sin modificar el codigo original de la pagina, si de alguna forma se puede identificar los componentes de la pagina web e interactuar con ellos, como llenar casilleros o presionar botones mediante una aplicacion, para estar haciendolo manualmente ya que siempre alguien tiene que estar frente a una computadora con internet para hacer la carga de los datos y es tedioso.

Desde ya muchas gracias por sus sugerencias. Esto no lo vi en ningun tutorial parece un problema novedoso, es por eso que pido ayuda.

roman 30-10-2014 18:11:05

Cita:

Empezado por lamasdf (Mensaje 484017)
si de alguna forma se puede identificar los componentes de la pagina web e interactuar con ellos

Es que, para decirlo rápido, lo que intentas automatizar no es una página web y por tanto no tienes sus partes. Lo que tienes es un objeto Flash y como dice mamcx, eso no es fácil de automatizar.

// Saludos

lamasdf 31-10-2014 03:36:03

Ya que los moderadores opinan que es muy complicado.
Paso otra pagina web que es mas simple pero lo que se quiere hacer es lo mismo.

190.210.55.97/wap/teleexpress/pos

Usuario loly3
clave loly

¿En esta pagina se puede llenar los casilleros y hacer click mediante codigo?
Que componentes de delphi uso para manipular los componentes de la pagina.

Gracias por su sugerencia.

Neftali [Germán.Estévez] 31-10-2014 12:18:45

Supongo que en este caso puedes hacerlo con las Indy.
Si buscas en los foros, encontrarás mensajes antiguos donde hemos hablado del tema, de acceder a un web rellenando los campos desde una aplicación delphi.

Por ejemplo este, que me contestaron a mi por u tema parecido, pero si buscas hay más.

lamasdf 31-10-2014 21:29:11

Hice algo de codigo y por ahora esta funcionando les paso lo que hice. Hasta ahora llegue a cargar el usuario, la clave y hacer click en el link de Login para ingresar.

Código Delphi [-]

procedure TForm1.BotonInicioClick(Sender: TObject);
begin
   WebBrowser1.Navigate('190.210.55.97/wap/teleexpress/pos');
   Label2.Caption:='Comienza Carga';
end;

procedure TForm1.ButtonSalirClick(Sender: TObject);
begin
   Form1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
  li: Word;
  CantItem,i: Integer;
  ovElemento: OleVariant;
  loslink: OleVariant;
  j: integer;
 begin

   ovElemento := WebBrowser1.OleObject.Document.forms.item(0).elements;

{ Rutina usada para identificar cuales son los numero de cada item de la pagina web
   CantItem:=ovElemento.Length;
   Label7.Caption:=InttoStr (CantItem);
   for i := 0 to (ovElemento.Length - 1) do
    Begin
       Memodatosweb.Lines.Add(ovElemento.item(i).tagName);
       Memodatosweb.Lines.Add(ovElemento.item(i).type);
       Memodatosweb.Lines.Add(ovElemento.item(i).Value);
    end;
  }
   ovElemento.item(2).value:='loly3'; // Carga Usuario
   ovElemento.item(3).value:='loly';  // Carga Clave

   loslink := WebBrowser1.OleObject.Document.links;

{ Rutina para saber todos los link de la pagina web, lo muestra en un ListBox
    Label8.Caption := inttostr(loslink.length);
    for j := 0 to loslink.length - 1 do
      Listbox1.Items.Add(loslink.item(j));
  }
    loslink.item(0).click;     // Hace click en Login para entrar con el usuario y clave

 end;

lamasdf 31-10-2014 21:41:26

Voy limpiar el codigo un poco para que se entienda
Código Delphi [-]


procedure TForm1.BotonInicioClick(Sender: TObject);
begin
   WebBrowser1.Navigate('190.210.55.97/wap/teleexpress/pos');     //CARGA LA PAGINA WEB
   Label2.Caption:='Comienza Carga';
end;

procedure TForm1.ButtonSalirClick(Sender: TObject);                   // BOTON PARA SALIR DE LA APLICACION
begin
   Form1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);                       // BOTON PARA INICIAR LA CARGA DE DATOS
Var
  li: Word;
  CantItem,i: Integer;
  ovElemento: OleVariant;
  loslink: OleVariant;
  j: integer;
 begin

   ovElemento := WebBrowser1.OleObject.Document.forms.item(0).elements;

   ovElemento.item(2).value:='loly3'; // Carga Usuario es 2 porque lo identifique, se muestra en el mensaje anterior
   ovElemento.item(3).value:='loly';  // Carga Clave

   loslink := WebBrowser1.OleObject.Document.links;
   loslink.item(0).click;     // Hace click en Login para entrar con el usuario y clave ya cargados. Es 0 porque es
                                  //  el unico link en la pagina

 end;

Neftali [Germán.Estévez] 03-11-2014 13:24:12

Recuerda añadir TAG's a los mensajes cuando añadas código.
estos ya los modifico yo.

edy_aca 22-02-2015 23:32:31

Muchas gracias muy bueno


La franja horaria es GMT +2. Ahora son las 09:43:28.

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