Consulta sobre crear un objeto Edge

923 views
Skip to first unread message

Damian Lana

unread,
Nov 2, 2021, 5:37:24 PM11/2/21
to Comunidad de Visual Foxpro en Español
Hay alguna forma de instanciar a Edge como se hacia en internet explorer

oIE = createobject( "internetexplorer.application" )

Gracias Damia 
Mendoza Argentina

Sergio Rojas

unread,
Nov 2, 2021, 6:06:23 PM11/2/21
to publice...@googlegroups.com

RUN /N "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/9596b8af-fb4f-4433-9226-f4e84efdd735n%40googlegroups.com.

J. Enrique Ramos Menchaca

unread,
Nov 2, 2021, 8:47:16 PM11/2/21
to Comunidad de Visual Foxpro en Español
Tome la idea del siguiente link:

oWshShell = CreateObject("WScript.Shell")
oWshShell.Run="msedge.exe https://myRP/logoutpage"

Fernando Mora

unread,
Nov 2, 2021, 11:15:23 PM11/2/21
to Comunidad de Visual Foxpro en Español
Puedes abrir cualquier navegador, (Edge, Chrome, Mozilla) usando  CreateObject("WScript.Shell") incluso puede indicarle la pagina con la que empiece a navegar. Pero instanciar al navegador como objeto, tal como se lo hace con Internet Explorer. NO.

J. Enrique Ramos Menchaca

unread,
Nov 3, 2021, 12:51:50 AM11/3/21
to Comunidad de Visual Foxpro en Español

Damian Lana

unread,
Nov 4, 2021, 7:12:14 AM11/4/21
to publice...@googlegroups.com
Gracias, por las respuestas
La idea era automatizar para poder navegar en una pagina cargando información, si utilizo el shell no lo puedo hacer, creo,

Sldos
Damian Lana
Mendoza Argentina

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Fernando Mora

unread,
Nov 4, 2021, 9:06:12 AM11/4/21
to Comunidad de Visual Foxpro en Español
Yo navego por portales desde fox usando http, con los metodos GET y POST, me apoyo en Fiddler para observar como el navegador pasa los datos al portal. Y solo copio la cadena de texto que se pasa con el metodo POST para llenar un formulario. Esa es una manera mas optima de automatizar la navegación.  
Revisa como usar el objeto Msxml2.ServerXMLHTTP.6.0 por ahí es el camino. 

Saludos
Fernando. 

jcagu...@gmail.com

unread,
Nov 4, 2021, 1:56:11 PM11/4/21
to Comunidad de Visual Foxpro en Español
hace tiempo publique algo en  https://www.facebook.com/groups/367013982598/posts/10158020029767599  alli te doy algunas pistas

Zarlu

unread,
Nov 8, 2021, 1:07:56 PM11/8/21
to Comunidad de Visual Foxpro en Español
Buenos días foxeros!

He hecho algo para Chrome con Selenium, Java y por supuesto de frente con el zorro.

Suena interesante lo que mencionas Fernando Mora.
Tendrás más información o algún ejemplo sencillo para curiosear?

Gracias
zarlu
Chetumal, Quintana Roo, México

Fernando Mora

unread,
Nov 8, 2021, 3:32:59 PM11/8/21
to Comunidad de Visual Foxpro en Español
Hola Zarlu

Lo primero que tienes que hacer es descargar e instalar Fiddler de Telerik: https://www.telerik.com/fiddler/fiddler-classic
 
Abres Fiddler, luego, usas tu navegador, supongamos Chrome. vas hasta la dirección web del portal que quieres automatizar con Fox, navegas, llenas formularios, envías datos, recibes respuesta. Luego solo vas a Fiddler y revisas que carajos hizo el portal. Ahí están todas las acciones que se realizaron, los GET, POST, etc. del REQUEST y hasta puedes ver los RESPOND. Copias los request a Fox y pruebas. Eso es todo.

EJEMPLO:
Vamos a automatizar el portal para consultar planillas de luz de mi ciudad Machala, la dirección es:  www.cnelep.gob.ec/planillas/
Entonces, teniendo abierto Fiddler, abro Chrome y navego hasta esta dirección, hago la consulta:
CNEL.jpg

Ahora veo como hizo el portal el REQUEST en Fiddler, selecciono la dirección del proceso y en la pestaña INSPECTOR, en la sub-pestaña RAW, en la parte de abajo puedo ver que dio como RESPOND el portal, se esperaba un JSON, tal como lo indica en el REQUEST. 

FIDDLER.jpg

Sombrea y copia todo el dato del RESPOND y lo pegas dentro de Fox y armas tu HTTP,  (ojo, yo desactivo la compresión GZIP) así:

Clear
lcRuc="0760000260001"
lcResp=GetPlanilla(lcRuc)
? lcResp

Procedure GetPlanilla()
Lparameters tcIndentidad As String
lcRequest="PP=0&UN=EOR&CC="+ tcIndentidad
oHTTP=Createobject("Msxml2.ServerXMLHTTP.6.0")
oHTTP.setRequestHeader("Host", "www.cnelep.gob.ec")
oHTTP.setRequestHeader("Connection", "keep-alive")
oHTTP.setRequestHeader("Content-Length", Transform(Len(lcRequest)))
oHTTP.setRequestHeader("sec-ch-ua", ["Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"])
oHTTP.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")
oHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
oHTTP.setRequestHeader("X-Requested-With", "XMLHttpRequest")
oHTTP.setRequestHeader("sec-ch-ua-mobile", "?0")
oHTTP.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36")
oHTTP.setRequestHeader("sec-ch-ua-platform", "Windows")
oHTTP.setRequestHeader("Origin", "https://www.cnelep.gob.ec")
oHTTP.setRequestHeader("Sec-Fetch-Site", "same-origin")
oHTTP.setRequestHeader("Sec-Fetch-Mode", "cors")
oHTTP.setRequestHeader("Sec-Fetch-Dest", "empty")
oHTTP.setRequestHeader("Referer", "https://www.cnelep.gob.ec/planillas/")
* oHTTP.setRequestHeader("Accept-Encoding", "gzip, deflate, br")
oHTTP.setRequestHeader("Accept-Language", "es-419,es;q=0.9")
Try
oHTTP.Send(lcRequest)
Catch To oError
lcMessage=oError.Message
EndTry
Set Step On
? oHTTP.Status 
lcHead = oHTTP.getAllResponseHeaders
lcText = oHTTP.responseText
Return lcText 
EndProc
*---- fin del codigo

Y eso es todo amigo.
Prueba y me avisas como te fue. 

Saludos
Fernando

Fernando Mora

unread,
Nov 8, 2021, 3:49:54 PM11/8/21
to Comunidad de Visual Foxpro en Español
Corección: Sombrea y copia todo el dato  del REQUEST y lo pegas dentro de Fox y armas tu HTTP,  (ojo, yo desactivo la compresión GZIP)

La compresión GZIP, es útil para que la respuesta sea mas rápida, luego el respond se lo puede descompirmir ya en el cliente. Lo desactivo para este ejemplo. 

Saludos
Fernando

Zarlu

unread,
Nov 8, 2021, 4:26:42 PM11/8/21
to Comunidad de Visual Foxpro en Español
Eres muy amable Fernando!
Muy claro.

Lo echaré andar tal cual y te comento

(De dónde se toma esto?:  lcRequest="PP=0&UN=EOR&CC=".......)

Gracias
zarlu
Chetumal, Quintana Roo, México

Fernando Mora

unread,
Nov 8, 2021, 5:33:13 PM11/8/21
to Comunidad de Visual Foxpro en Español
Hola Zarlu

Esa es la cadena de texto del parámetro del método POST de este REQUEST de ejemplo. Eso lo copias desde Fiddler. 
Lo colocamos primero dentro de nuestro proceso en Fox porque dentro de la cabecera del Request se debe indicar la longitud de esta cadena, exactamente en el parámetro  "Content-Length". 
FIDDLER_request.jpg

Fernando Mora

unread,
Nov 8, 2021, 5:39:39 PM11/8/21
to Comunidad de Visual Foxpro en Español
Todos los POST, GET, etc que se ejecutan al momento de navegar, se los pueden visualizar también desde el mismo navegado, en las Herramientas del desarrollador,  en el apartado "Network", pero Fiddler te lo da mas claro el dato del request, solo de copiar y pegar, además tiene varias opciones de visualizar el RESPOND para que nosotros los programadores sepamos como recibir los resultados, agregue a esto que es una herramienta GRATUITA. 

Saludos Comunidad.

Zarlu

unread,
Nov 8, 2021, 6:03:11 PM11/8/21
to Comunidad de Visual Foxpro en Español
Qué tal Fernando!

Si. Ya vi el dato por el que preguntaba. Al final del request como comentas.

Ya hice la prueba con Firefox. Jaló bien
Lo probaré después con otras paginas.

Observo que, al igual que con Selenium, hay que estar atento a las versiones de navegadores que se usen y actualizar los controladores o el código.

Pero es una buena  opción para interactuar con la web con código del zorrito

Gracias de nuevo Fernando. Documentado y guardado para cuando se requiera

zarlu
Chetumal, Quintana Roo, México

Sin título.png

Fernando Mora

unread,
Nov 8, 2021, 6:53:51 PM11/8/21
to Comunidad de Visual Foxpro en Español
"Observo que, al igual que con Selenium, hay que estar atento a las versiones de navegadores que se usen y actualizar los controladores o el código."

Vale aclarar tres cosas:
1, a diferencia de Selenium, no hay que instalar nada en el equipo del cliente, ni una extensión, ni una aplicación extra, ni nada.
2, no importan la versión de navegador que tengas instalado, de hecho ni es necesario que tengas instalado un navegador, el código no usa ningún navegador. Lo que hace es disfrazar al objeto HTTP como si fuese un navegado (emula a un navegador) para enviar el request y obtener un respond. 
3. A Fiddler lo usamos para obtener los datos exactos del request, no es necesario instalarlo en la maquina del cliente. 

Y lo mas importante, esto es código Fox%

Saludos. 
Fernando Mora. 
Reply all
Reply to author
Forward
0 new messages