PDA

Ver la Versión Completa : ¿Como completar datos en una pagina Web mediante codigo?


lamasdf
30-10-2014, 01:43:03
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,

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

Puedes probar con www.teleexpress.com.ar (http://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/3655862/flash-automation-using-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
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 (http://www.clubdelphi.com/foros/showthread.php?t=72067&highlight=campos+pagina+web), 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.



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



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 (http://tinyurl.com/bvzsyhb) cuando añadas código.
estos ya los modifico yo.

edy_aca
22-02-2015, 23:32:31
Muchas gracias muy bueno