AutoHotKey WinGetText가 텍스트를 검색하지 않습니다.

AutoHotKey WinGetText가 텍스트를 검색하지 않습니다.

저는 AutoHotKey를 배우고 있으며 이를 사용하여 필요한 특정 프로세스를 자동화할 수 있는지 알아보고 있습니다. MS Edge를 사용하여 브라우저 창을 엽니다(작동하게 되면 다른 브라우저를 처리하도록 코딩할 수 있음). 기본적으로 홈 페이지로 설정되고 Ctrl+를 눌러 U탭을 열어 페이지의 HTML을 검사한 다음 을 검색한 MyTech Support Portal다음 :sptth( )를 거꾸로 검색 https:하면 URL을 추출할 수 있습니다. 여러 브라우저 탭을 올바르게 처리하고 있는지 잘 모르겠습니다.

홈 웹페이지에는 "기술 도움말" 아래에 드롭다운이 있습니다. 여기에 커서를 놓으면 드롭다운이 열리고 "MyTech 지원 포털"을 선택합니다. AutoHotKey에서 "기술 도움말"이라는 텍스트를 찾고 마우스를 "MyTech 지원 포털"로 이동하여 클릭하는 방법을 알 수 없었습니다. Inspect를 사용하여 HTML 소스 코드를 볼 수 있으면 해당 특정 URL을 찾아 추출할 수 있다고 생각했습니다.. 그래서 WinGetText를 사용하여 "MyTech Support Portal" URL을 추출하려고 합니다.

드롭다운 예

다음은 URL이 포함된 줄의 일부입니다. ,\"Url\":\"https://xxxxx365.sharepoint.com/sites/ServiceManagementSVCDesk\",\"Type\":\"Group\",\"Title\":\"MyTECH Support Portal\",

내가 겪고있는 문제는 다음을 실행할 때입니다.

WebText1 := WinGetText(WebTitle2)

Inspect 텍스트 대신 다음을 반환합니다.

WebText1=크롬 레거시 창

15행에서 ​​MsgBox는 다음을 반환합니다.

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

내 프로그램 코드는 다음과 같습니다( 내 코드를 테스트하기 위해 Ctrl+ Alt+를 사용하고 있습니다 ).R

#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

}

답변1

잠재적인 해결책은 다음과 같습니다.

  1. 지금처럼 소스를 열어보세요.
  2. Ctrl+를 눌러 A모든 항목을 선택하세요.
Send, ^a

선택하지 않을 경우,Click먼저 페이지 중앙에 집중하세요.

  1. Ctrl+를 사용하여 클립보드에 복사합니다 C.
Send, ^c
  1. 사용Clipboard전체 값에 액세스하기 위한 변수입니다.
  2. 그것에 대해 어떤 종류의 일치도 수행하십시오. 간단하게 추천드려요RegExMatch당신이 시도하는 이상한 반대 작업 대신 원하는 URL 형식에 대해. 그룹 으로 캡처해 보세요 (). 일치하는 https것만으로는 페이지의 유일한 URL이 아니라고 생각하기 때문에 좋은 생각이 아닙니다.

관련 정보