Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 20-08-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por fqm33 Ver Mensaje
... orientenme estudio las Indy, sigo con shellExecute, Intraweb?, que seria lo mas recomendable? en su experiencia, de nuevo muchas gracias.
Tendrás que explicarnos detalladamente lo que intentas hacer, datos, información, la web... etc.
En caso contrario solamente podemos dar información general.
Responder Con Cita
  #22  
Antiguo 20-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Usar el TIdHTTP es relativamente simple:
Código Delphi [-]
HTTP := TidHTTP.Create;
try
  HTTP.Post(laurl);
finally
  // hacer algo más
  HTTP.Free;
end;

Ese es un ejemplo burdo de como navegar una URL. El componente en cuestión tiene varios métodos Post y Get sobrecargados. El que más te interesa es uno que recibe como parámetro adicional un Stream en donde puedes recibir el código fuente.

Post se utiliza mayormente para enviar y navegar a una web con ciertos parámetros, Get por su parte para solicitar devolver una web. Después de un Post suele haber un Get. En ocasiones se puede prescindir de Post y es posible directamente hacer un Get sobre la url y pasándole los parámetros.

En el foro ya una vez comenté sobre esto. Busca.

Pero insisto y apoyo a Casimiro, no nos has dicho cual es la web ni aportaste información adicional. Si tuvieramos algún dato extra como para ver si es posible encararlo de esta forma (que a mi entender de la que te estaban indicando es la más apropiada). Como he dicho: la primera barrera está en como la página recibe el usuario y contraseña y si los datos van cifrados y/o se reciben cifrados.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #23  
Antiguo 25-08-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
buenos días, no les había podido contestar (ni agradecer), para casimiro y delphius, les comento, mas detalladamente el proceso
se ingresa a la pagina
la empresa propietaria de la web, le entrega un token al usuario este puede ser físico o virtual, dicho token ya tiene un usuario base, y la contraseña se genera cada vez que ingreso, pues el token genera contraseñas cada varios segundos para dicho usuario, por lo tanto ese paso no se puede automatizar pues el dato se debe ingresar respecto a la contraseña generada. hasta ahí no tengo problema,

luego de esto doy click en siguiente, y de ahí en adelante es cuando debo automatizar el proceso que es el siguiente:
escoger una opción del menú y del submenu (que siempre son las mismas - (hacer click en las opciones).
ingreso tipo de documento de una lista desplegable, numero de documento, nombre y apellidos
hago click en aceptar
se despliega otra pantalla
ingreso un numero de 17 dígitos pero en formato texto
otros datos como vendedor, dirección, ciudad, departamento, y
se hace click en aceptar
el sistema de la pagina con esa información me arroja otro numero en formato texto de diez dígitos,
ese dato lo debo tomar y grabar en mi tabla de excel desde donde estoy enviándole los datos a la pagina

así debe repetirse con todas las filas del archivo de excel hasta que termine, dicho archivo normalmente tiene de 5000 a 10000 registros sin embargo puede llegar el momento que el archivo a leer tenga menos de 1000.
la dirección de la pagina se las podría enviar pero de manera privada no por el foro, indiquen sus dos correos o la forma de hacerlo, sin embargo el solo les mostraría la pagina donde se debe ingresar el usuario y contraseña. como comentario final estoy leyendo una guía de Indy. muchas gracias por su colaboracion
Responder Con Cita
  #24  
Antiguo 25-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por fqm33 Ver Mensaje
luego de esto doy click en siguiente, y de ahí en adelante es cuando debo automatizar el proceso que es el siguiente:
escoger una opción del menú y del submenu (que siempre son las mismas - (hacer click en las opciones).
ingreso tipo de documento de una lista desplegable, numero de documento, nombre y apellidos
hago click en aceptar
se despliega otra pantalla
ingreso un numero de 17 dígitos pero en formato texto
otros datos como vendedor, dirección, ciudad, departamento, y
se hace click en aceptar
el sistema de la pagina con esa información me arroja otro numero en formato texto de diez dígitos,
ese dato lo debo tomar y grabar en mi tabla de excel desde donde estoy enviándole los datos a la pagina

así debe repetirse con todas las filas del archivo de excel hasta que termine, dicho archivo normalmente tiene de 5000 a 10000 registros sin embargo puede llegar el momento que el archivo a leer tenga menos de 1000.
la dirección de la pagina se las podría enviar pero de manera privada no por el foro, indiquen sus dos correos o la forma de hacerlo, sin embargo el solo les mostraría la pagina donde se debe ingresar el usuario y contraseña. como comentario final estoy leyendo una guía de Indy. muchas gracias por su colaboracion
¡Vaya lio de proceso te espera!
Pues como he dicho, deberás aplicar un tanto de ingeniería inversa... examina el HTML que te regresa el server para ver como está presentada la página. También deberás hacer uso de las herramientas de desarrollor que ofrecen Firefox y/o Chrome para examinar que parámetros, orden, y como se pasan los valores...

Por ejemplo, tomemos esa lista desplegable para el tipo de DNI. En el HTML deberías ver algo como esto:

<select name="Tipo DNI">
<option value="1">(DNI) Documento Nacional de Identidad</option>
<option value="2">(LE) Libreta de Enrolamiento</option>
<option value="3">(LC) Libreta cívica</option>
<option value="4">Pasaporte extrangero</option>
</select>

El ejemplo está inspirado en el sistema Argentino.

Bueno, entonces ahora con la herramienta de Chrome para desarrolladores revisas la URL decodificada devuelta... probando con las diferentes opciones... Digamos que tu seleccionas LE, y ves un parámetro con nombre medio raro pIdType (es una manera de despistar a los curiosos del nombre real) y que justo recibió el valor 2. Repites el proceso cambiando opciones y así vas viendo si es una coincidencia.
Hagamos de cuenta que efectivamente el pIdType se corresponde al DNI y lo que se termina pasando es el valor asociado a <option>

Eso deberás ir haciendo para todo los parámetros... Pero en cuanto veas algo como OIUBKOJL224%e3$ ¡La tienes jodida! ¡Es un dato que va cifrado o vaya a saber de donde lo sacó!
Si tienes suerte, todo va sin cifrar y ya tienes ideas de como armar una URL y pasarle los valores a cada parámetro.

El trabajo final que te queda es obtener el HTML que te regresa y estudiarlo para recuperar ese número de 10 cifras.
Acá debo hacer una advertencia: No necesariamente el HTML que te devuelve Indy será igual al que veas con Firefox por ejemplo. ¿Porqué? Porque Indy devuelve el HTML en "original"... con sus posibles erratas de parte del desarrollador al elaborar el sitio mientras que FF, Chrome, Opera, y los demás van a tratar de armar el HTML de la mejor manera que cumpla con el estándar W3C. Un buen ejemplo: los navegadores van a tratar de poner los tags de cierre a las etiquetas opcionales.

Ya he dicho bastante, con esto deberás tener una buena idea de como encarar el trabajo.
Más no te podemos ayudar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #25  
Antiguo 27-08-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Excelente, muchas gracias, encontré un archivo de indy. parece que están todos lo comandos, (voy en la pagina 300 de mas de 3000), sin embargo no tiene ejemplos, este tema me esta dando tan duro como cuando quise hacer por primera vez una conexión a base de datos sin el asistente del ADO, me demore pero lo hice espero que con este me pase lo mismo. ya encontré la lista desplegable, del tipo de documento. en el código fuente de la pagina, muchas gracias, por la orientación,
Responder Con Cita
  #26  
Antiguo 27-08-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por fqm33 Ver Mensaje
Excelente, muchas gracias, encontré un archivo de indy. parece que están todos lo comandos, (voy en la pagina 300 de mas de 3000), sin embargo no tiene ejemplos, este tema me esta dando tan duro como cuando quise hacer por primera vez una conexión a base de datos sin el asistente del ADO, me demore pero lo hice espero que con este me pase lo mismo. ya encontré la lista desplegable, del tipo de documento. en el código fuente de la pagina, muchas gracias, por la orientación,
¿Comandos?
No hay ningún comando.
Me di cuenta que estás bastante perdido en cuanto leí la palabra "comando".
Esto es Delphi, Object Pascal; no hay comandos.
Lo que hay son clases, objetos, y lo que tu dices "comandos" son los métodos (funciones y/o procedimientos) que ofrecen las clases.

Si quieres hacer esto en serio, entonces toma las cosas en serio y empieza a utilizar los conceptos como corresponden. Evidentemente no vienes de una formación previa. Sugiero que leas La Cara Oculta de Delphi 4... te ayudará a canalizar las cosas a buen puerto. Parecerá viejo por lleer "Delphi 4", pero sus conceptos siguen vigentes y/o se pueden extrapolar a lo nuevo.

La documentación oficial de Indy la puedes consultar. Aunque si es cierto que no se caracteriza por tener demasiados ejemplos.

Para que te hagas una idea de como deberías trabajar con TidHHTP y navegar un sitio, mira esto.
Y como he dicho, en otro hilo yo ya había comentado sobre Indy+Post+recuperar HTML. Si bien en esa oportunidad apunté al uso de Indy con Lazarus (que es lo que uso actualmente), estimo que las cosas con Delphi son iguales o bastante similares.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #27  
Antiguo 23-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Buenos días a todos, tomando de nuevo el tema en el que muy amablemente me están ayudando, tome la sugerencias de Delphius y casimiro, y he leído mucho al respecto, aunque por cuestiones de ocupaciones varias no he avanzado mucho, les comento que ya envio la información del usuario y contraseña a la pagina. muchas gracias, por eso, lo estoy elaborando con Webbrowser, sin embargo me he encontrado que después de entrar el usuario y su clave, con el siguiente código

procedure TF_activa.xpButton1Click(Sender: TObject);
begin
Webbrowser1.OleObject.Document.GetElementByID('ctl00$ContentPlaceHolder1$txtUserIni').SetAttribute(' value', 'ECM1112A');
Sleep(250);
WebBrowser1.OleObject.Document.Forms.Item(0).elements.item('ctl00$ContentPlaceHolder1$BtnIngresar'). Click;
end;

y funciona bien

al tratar de entrar un click en uno de los botones del menú, se saca un error de violación de memoria,
el código es el siguiente


procedure TF_activa.xpButton3Click(Sender: TObject);
begin
WebBrowser1.OleObject.Document.Forms.Item(1).elements.item('button2').Click;
Sleep(250);
end;

como ven lo monte en otro botón, pero también lo he intentado en el procedimiento anterior, y el error es el mismo, de nuevo muchas gracias por su ayuda
Responder Con Cita
  #28  
Antiguo 23-09-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
No manchen, quien anda resucitando post de la prehistoria?
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #29  
Antiguo 23-09-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por fqm33 Ver Mensaje
Buenos días a todos
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #30  
Antiguo 23-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Casimiro, gracias por el comentario lo tendré en cuenta para la próxima, y bitbow, te comento, soy nuevo en el tema de Internet tengo delphi 7 enterprise, he usado lo que voy aprendiendo, si tienes una forma mas eficiente que me sirva para esta versión de Delphi bienvenida sera.
Responder Con Cita
  #31  
Antiguo 23-09-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Una disculpa, estaba viendo la fecha de un usuario (2006), no recuerdo bien de que iba el tema pero veo que tiene solo unos meses.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #32  
Antiguo 24-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Talking

no problema bitbow, bueno y yendo a mi pregunta, creo que el problema (fuera de no saber), es que cuando entro la contraseña, el me envía a la pagina del menú, por supuesto los items no los mismos, entonces la pregunta puntual es, como hago referencia a un elemento (id) de la pagina que me esta mostrando el webbrowser en ese momento si la cuenta de los items ya no es la anterior que tenia el Webbrowser?, (creo que esta mas difícil entender la preguntar que solucionarla, pero no encuentro una forma mas técnica de decirlo), gracias muchachos cualquier aporte es valioso.
Responder Con Cita
  #33  
Antiguo 26-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
De nuevo buenos días, sigo con mi proyecto, y ahora me encuentro que debo seleccionar de una lista desplegable una opción (siempre la misma), como me indico Delphius hace algunas semanas encontré el código HTML, sin embargo opte por Webbrowser ( no se si es la mejor elección, pero es de la que mas encontré documentación), y necesito por favor ayuda para poder seleccionar esa opción con el Webbrowser, muchas gracias.
Responder Con Cita
  #34  
Antiguo 27-09-2016
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Por lo que explicas de tu problema, se parece mucho a un sistema que tuve que desarrollar hace un tiempo para poder subir un catalogo de productos generado en CSV a una web de ventas de terceros.

Las instrucciones que esta web facilitaba para explicarle al usuario la subida de productos era el mismo proceso que indicas.
1.- Abres tu fichero CSV con EXCEL (Este CSV contiene los datos de los productos que vas a dar de ALTA)
2.- copias solamente la columna de tus códigos de producto a una pagina en blanco y la guardas como un nuevo CSV que
envías a través de su panel de administración, al que se accede con validación de usuario y clave,
3.- Descarga un nuevo CSV que te devuelve el sistema de ellos donde han añadido una columna mas junto a la los códigos tuyos de producto con un identificador que ellos le asignan a tus productos (el orden de los productos en este nuevo CSV es exactamente igual al que se le envía),
4.- Ahora abres este nuevo CSV también en EXCEL y copias la columna que ellos han añadido insertandola delante de tu columna de codigos, y gurdas de nuevo el fichero que ademas contiene el resto de la información de producto (nombre, descripción, precio, stocks ... ).
5.- Sube ese nuevo fichero de nuevo a la web para que se terminen de publicar los articulos.
Este proceso en realidad esta explicado en sus instrucciones de forma, por eso se abre con EXCEL, que el usuario lo vea simple,
y ademas poder hacerlo totalmente manual a partir de un listado de productos en CSV o incluso desde cero.
EXCEL salvo para tener claro que hacer en cada momento no lo necesite para nada.

En mi caso en particular para automatizarlo, utilice PHP y el proceso de envío lo hice a través de las librerías CURLS,
pero el proceso al final es muy parecido a como se haría en delphi
En todos las consultas CURLS o en delphi (TIDHTTP) es necesario incluir las cabezeras de identificación.

En cuanto a los datos a enviar, ademas de añadir el fichero CSV, también hay que añadir de forma manual los campos que monta el form de la web de ellos con las opciones que se desean seleccionar (Este es el método que te explico Delphius un poco mas arriba), en mi caso estas opciones siempre son las mismas y no suelen cambiar, y el envío para poder enviar un fichero se hace por el método POST.


Si todo va bien, en mi caso devuelven un numero, que es el identificador del fichero que has enviado en el sistema de ellos, a partir de este numero los siguientes ficheros de descarga son fáciles de identificar, pues siempre lo suelen incluir.

Y en cuanto a las respuestas de la pagina, suelen ser paginas relativamente cortas, con identificadores fáciles de encontrar dentro del código HTML, y se trata de buscar los enlaces que devuelve para la descarga de los ficheros que ellos te generan (realizar una especie de parseador, junto al identificador de fichero obtenido anteriormente)

El mayor problema esta en:
- acceder al área privada, a veces es necesario poner cierto parametros concretos en las cabezeras de envio,
- Saber que campos con sus correspondientes valores tienes que enviar
- y que datos vas a recibir.
No se si este caso que explico es parecido o similar a lo que quieres realizar
Si necesitas mas información, te puedo orientar

Un Saludo
Responder Con Cita
  #35  
Antiguo 27-09-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
En estos días de mensajes de 140 caracteres que duran no más de 140 segundos en la mente del lector, cualquier ayer es prehistoria.
Responder Con Cita
  #36  
Antiguo 30-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Buenas Noches, compañeros, gracias por las respuestas, Bucanero tienes razón, lo que estoy tratando de crear es muy parecido, a lo que indicas, con alguna modificación muy pequeña (no se que tanto en código), que cuando lleno la información del formulario WEB desde Excel, el sistema verifica la información y me arroja un dato, que debo cargar al registro de Excel, y así con cada fila, y claro bucanero estoy muy interesado en tu asesoría y en la de todos, aunque tengo muchos vacíos, he aprendido un montón con sus comentarios.
como indicaba anteriormente estoy usando WebBrowser, y ahora estoy en la selección de una opción de un combobox, aquí el código HTML.

[HTML]
</td>
<td class="fila1">
<select name="ctl00$ph$ucProds$ddlClasificacion" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ph$ucProds$ddlClasificacion\',\'\')', 0)" id="ctl00_ph_ucProds_ddlClasificacion" tabindex="2" class="comboBox";">
<option selected="selected" value="">&lt;&lt;Seleccione&gt;&gt;</option>
<option value="29">Activa1</option>
<option value="27">Activa2</option>
<option value="28">Activa3</option>

</select>
</td>
[/HTML]

he tratado de usar varias(muchas) alternativas para escogerla pero ninguna me funciona, anexo una que cuando doy click dice metodo no soportado, sin embargo otras sacan otros tipos de error.
esta y las demás las he encontrado navegando por ahi,

Código Delphi [-]
WebBrowser1.Oleobject.Document.GetElementByID('ctl00$ph$ucProds$ddlClasificacion').GetElementsByTagN  ame('Option').element.GetAttribute('28').Click;

agradecería un ejemplo de como realizar la selección, o una forma mas optima y/o técnica de realizarlo, de nuevo muchas gracias.
Responder Con Cita
  #37  
Antiguo 30-09-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Yo no he usado el TWebBrowser, no al menos para algo como lo que pretendes hacer.

Yo no buscaría simular/emular las acciones por medio del Browser como si fuera un usuario... Al menos eso es lo que me queda y entiendo que estás intentando hacer. De lo que estoy percibiendo, pareciera, por ese código que estás intentando ejecutar un Click sobre una lista desplegable por medio del TWebBrowser.

Yo, como te dije, buscaría la forma de hacerlo por otra vía. Le pediría a la página que directamente me de los datos, y le pasaría los parámetros finales. No me tomaría la "molestia" de simular clics, seleccionar opciones, etc. Directamente le solicito al server lo que necesito y que el se encargue de generarme la página HTML final para que yo lea y guarde en mi archivo de excel, una base de datos, o lo que fuese lo que realmente necesito poder recuperar y tener de manera persistente.

Nota que todo con lo que interactúes se traduce en última en un valor que el escript php/asp se encargará de recibir por medio de un parámetro.

Necesariamente debe haber un trabajo de ingeniería inversa y ponerte a estudiar como es que recibe los datos.
Como te dije unos post antes... una selección por ejemplo desde una lista desplegable se traducirá en un valor que luego la página recibe como parámetro. De igual forma lo que le pongas en algún Edit/Caja de texto o como le llames. Al final todo se traduce en una orden POST o GET sobre la página y se le pasará los parámetros.
Empieza a hacer ese trabajo de ingeniería... prueba con cada opción, y fíjate que se le manda como parámetro, y como se construye la URL final.
Si no tienes idea de como hacer eso ¡dilo!

Luego simplemente lo que debes hacer es pedirle al componente Indy o el TWebBrowser que navege a esa URL. ¡Te evitas estar jugando la página! Directamente decile: "Mirá, dame esto". Y si el proceso implica interactuar con 2 o 3 páginas, no importa... cada una estará diseñada justamente para recibir los parámetros que espera. Lo que tu debes hacer es navegar en el orden correcto cada una y recuperar del HTML generado lo que necesites.

A lo que voy es que si no te tomas la molestia de hacer la ingeniería inversa vas a seguir lidiando con clicks, que navegar, esperar respuesta, volver a mandar otro click, etc.

Mi propuesta es justamente evitarte eso: ir a los bifes. Si tu proceso te lleva a lidiar con 3 o 5 páginas, no interesa. A todas les debes revisar como y que se pasan como parámetro.

Te estás complicando al pedo, y te lo digo con todo respeto. Y para poder ayudarte mucho más vas a tener que dejar de lado ese estado de secretismo. No hay otra forma de saber que estas haciendo realmente, si lo estás haciendo bien, o que... Ayúdanos a ayudarte. De otra forma seguirás lidiando y dando vueltas en lo mismo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #38  
Antiguo 30-09-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
Buenas Noches, Delphius tomo nota de tus comentarios gracias, pues lo que dices es precisamente lo que estoy haciendo (simulando acciones), cuando dices ingeniería inversa es mirar el código HTML?; les comento lo que he ido haciendo:
- abro la pagina (webbrowser)
- ingreso el usuario - Webbrowser1.OleObject.Document.GetElementByID('ctl00$ContentPlaceHolder1$txtUserIni').SetAttribute(' value', 'ECM1112A');
- me abre la pagina de la contraseña
- ingreso la contraseña que genera el token
- me abre la pagina del menú principal - escojo la opción del menú (href)

Código Delphi [-]
  link := WebBrowser1.OleObject.Document.GetElementsByTagName('a');
  for i := 0 To Link.length -1 do
    if pos('/ACTIVACIONES/Http/Reingenieria/pagDispatcherEntrada.asp?Site=14',Link.item(i).href) <> 0 then
    Begin
      Link.item(i).Click;
      Sleep(100);
    End;

- me abre la pagina del ingreso de datos (hay es donde aparece el combobox del que les hablo) - hay voy.

como lo he hecho

miro el código fuente de cada pagina y asigno los clicks, que he ido necesitando, llenado los campos solicitados, y avanzando a los href correspondientes. Ahora he llegado a la pagina donde ingreso los
datos, dependiendo de la opción que seleccione, aparecen otros campos para llenar, y cuando acabo de llenar los campos se da click en un botón y el arroja el dato que necesito llevar a mi hoja de Excel.
No es ningún gran secreto (ja ja ja), es solo un aplicación para la empresa donde trabajo. tienes razón en que no tengo idea; Delphius dices que simular las acciones como si fuera un usuario,
y es que esa es la situación, a la empresa donde trabajo le asignan un usuario, y la contraseña se nos da por medio de un token. Ademas dices que esa no es vía - y creo que tienes razón, - pues te
comento por esta vía voy a pasos muy lentos, pero por las Indy que tu me recomendaste (y que la mayoría recomiendan), pues no encontré información básica como para ir aprendiendo y aplicando.
Agradezco sus orientaciones, y muchas gracias por tomarsen el trabajo de leer, analizar mis notas y apoyarmen.
Responder Con Cita
  #39  
Antiguo 30-09-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Ahora estoy por ir a dormir. Explicarte en profundidad el concepto de ingeniería inversa para este caso no me es posible ahora.
Si puedo darme un tiempo mañana por la tarde explico mejor el tema.
Y si en Delphi Starter está disponible Indy (no recuerdo ahora con seguridad si esta disponible) veo la posibilidad de dar un ejemplo básico para que te hagas una idea y extrapoles a tu caso.
Por lo pronto puedo decir que la idea es examinar con las herramientas para desarrolladores de los navegadores como se pasan los datos a los parámetros y de ir probando con la página hasta encontrar el dato en cuestion y de donde sale.
Si dices que todo depende de un token y una contraseña desde algún lado ese dato les he entregado. Si no es por medio o difundido desde el propio sitio, o bien haces que ese dato sea llenado por el usuario o le preguntas a él de donde lo saca y ves si hay forma de automatizarlo.
La ultima lección que te dejo es que no todo se puede (ni debiera) automatizar.

Saludos
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #40  
Antiguo 05-10-2016
fqm33 fqm33 is offline
Miembro
NULL
 
Registrado: ago 2016
Posts: 18
Poder: 0
fqm33 Va por buen camino
buenas noches, compañeros, les comento que ya supere lo del combobox, y ya pude escoger la opción, encontré este código, y me ha funcionado bien,

Código Delphi [-]
  cb := WebBrowser1.OleObject.Document.GetElementByID('ctl00$ph$ucProds$ddlClasificacion');
  cb.value := '28';
  cb.FireEvent('onchange', v);

luego de esto viene el ciclo donde debo llenar los campos de la web, y traer lo que esta me arroja
inicialmente encuentro un input text, que corresponde al apellido del cliente; he tratado de llenarlo con este código
Código Delphi [-]
Webbrowser1.OleObject.Document.GetElementByID('ctl00$ph$ucFields$tbLastName').SetAttribute('value', 'rojas');
pero me saca error de violación de memoria, he aumentado el Sleep, pero sigue saliendo el mismo error, lo he probado con este otro pero me saca error metodo value no soportado

Código Delphi [-]
Webbrowser1.OleObject.Document.GetElementByID('ctl00$ph$ucFields$tbLastName').value, 'rojas');

Nota: lo de 'rojas', es por que estoy probando pero mas adelante debo asignarle el valor de la celda correspondiente
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Enviar información a aplicación Delphi desde PHP elpichi Internet 3 10-05-2015 20:06:42
Enviar Datos a pagina web desde delphi tocomi Internet 3 19-02-2009 00:02:59
Problemas para enviar un mensaje desde una página web selman .NET 0 02-06-2007 01:18:58
Usar Post para enviar información a otra página halizia PHP 3 20-12-2006 15:55:12
enviar instruccion de =SUM desde delphi 5 a excel mayte mtz Varios 2 06-12-2006 17:52:28


La franja horaria es GMT +2. Ahora son las 20:00:56.


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