Estoy aprendiendo AutoHotKey y estoy tratando de ver si puedo usarlo para automatizar ciertos procesos que debemos realizar. Abrirá una ventana del navegador usando MS Edge (una vez que lo haga funcionar, puedo codificarlo para manejar los otros navegadores), de forma predeterminada a una página de inicio, presione Ctrl+ Upara abrir una pestaña para inspeccionar el HTML de la página, luego busque y MyTech Support Portal
luego Busque hacia atrás :sptth
( https:
) para poder extraer la URL. No estoy seguro de estar manejando correctamente varias pestañas del navegador.
La página web de inicio contiene un menú desplegable en "Ayuda técnica", en el que colocaría el cursor, se abre el menú desplegable y luego selecciono "Portal de soporte MyTech". No pude entender cómo hacer que AutoHotKey encuentre el texto "Ayuda técnica", mueva el mouse al "Portal de soporte MyTech" y haga clic en él. Pensé que si podía ver el código fuente HTML usando Inspect, entonces podría ejecutar una búsqueda y extraer esa URL específica.. Es por eso que estoy intentando usar WinGetText, para poder extraer la URL del "Portal de soporte MyTech".
Aquí está parte de la línea que contiene la URL: ,\"Url\":\"https://xxxxx365.sharepoint.com/sites/ServiceManagementSVCDesk\",\"Type\":\"Group\",\"Title\":\"MyTECH Support Portal\",
El problema que tengo es cuando ejecuto:
WebText1 := WinGetText(WebTitle2)
en lugar del texto Inspeccionar, devuelve:
WebText1=Ventana heredada de Chrome
En la línea 15, MsgBox devuelve:
WebTitle1=GNIE HOME - Home - Work - Microsoft Edge
WebPage1=36604
WebTitle2=view-source:https://xxxxx365.sharepoint.com and 1 more page - work - Microsoft Edge
WebPage2=36604
Aquí está el código de mi programa ( solo estoy usando Ctrl++ para probar mi código):AltR
#Requires AutoHotkey v2.0
^!r::
{
Run "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", , , &OutputVarPID
winWaitActive "ahk_pid" OutputVarPID, , 3
WebTitle1 := WinGetTitle("A")
WebPage1 := OutputVarPID
Send "^u"
winWaitActive "ahk_pid" OutputVarPID, , 3
WebTitle2 := WinGetTitle("A")
WebPage2 := OutputVarPID
MsgBox "WebTitle1=" WebTitle1 "`nWebPage1=" WebPage1 "`nWebTitle2=" WebTitle2 "`nWebPage2=" WebPage2
/*
Send "^f"
SendText "MyTech Support Portal"
send "^f"
sendText "https:"
Send "^+g"
*/
WebText1 := WinGetText(WebTitle2)
msgbox "WebText1=" WebText1
Pos1 := instr(WebText1, "MyTech Support Portal")
if Pos1 = 0 {
msgbox "'MyTech Support Portal' was not found"
exit
}
Pos2 := instr(WebText1,":sptth:", , Pos1, -1)
if Pos2 = 0 {
msgbox "'https:' was not found"
exit
}
url := SubStr(WebText1, Pos2, (Pos1 - Pos2 + 1))
msgbox "url=" url
}
Respuesta1
Aquí tienes una posible solución:
- Abra la fuente como lo hace ahora.
- Pulsa Ctrl+ Apara seleccionar todo:
Send, ^a
Si no selecciona,Click
primero en el medio de la página para enfocarse.
- Copiar al portapapeles con Ctrl+ C:
Send, ^c
- Usar
Clipboard
variable para acceder al valor completo. - Haga cualquier tipo de comparación sobre eso. te recomiendo simple
RegExMatch
para el formato de URL deseado en lugar de lo extraño que estás intentando hacer al revés. Captúralo con un()
grupo. La coincidenciahttps
por sí sola tampoco es una buena idea, ya que no creo que sea la única URL de la página.