![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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.
|
|
#2
|
|||
|
|||
|
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.
|
|
#3
|
|||
|
|||
|
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)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,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 |
|
#4
|
||||
|
||||
|
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.
![]() |
|
#5
|
|||
|
|||
|
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=""><<Seleccione>></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,
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. |
|
#6
|
||||
|
||||
|
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, |
|
#7
|
|||
|
|||
|
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)
- 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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Enviar información a aplicación Delphi desde PHP | elpichi | Internet | 3 | 10-05-2015 19:06:42 |
| Enviar Datos a pagina web desde delphi | tocomi | Internet | 3 | 18-02-2009 23:02:59 |
| Problemas para enviar un mensaje desde una página web | selman | .NET | 0 | 02-06-2007 00:18:58 |
| Usar Post para enviar información a otra página | halizia | PHP | 3 | 20-12-2006 14:55:12 |
| enviar instruccion de =SUM desde delphi 5 a excel | mayte mtz | Varios | 2 | 06-12-2006 16:52:28 |
|