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:
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.