AutoHotKey WinGetText 未檢索文本

AutoHotKey WinGetText 未檢索文本

我正在學習 AutoHotKey 並嘗試看看是否可以使用它來自動化我們需要執行的某些流程。它將使用 MS Edge 打開瀏覽器視窗(一旦我讓它工作,我可以對其進行編碼以處理其他瀏覽器),預設為主頁,按Ctrl+U打開一個選項卡以檢查頁面的 HTML,然後搜索MyTech Support Portal,然後向後搜尋:sptth( https:),以便擷取 URL。我不確定我是否正確處理多個瀏覽器選項卡。

主頁在「技術說明」下包含一個下拉式選單,我將遊標放在該下拉式選單上,下拉式選單打開,然後選擇「MyTech 支援入口網站」。我不知道如何讓 AutoHotKey 找到文字“Tech Help”,將滑鼠移至“MyTech Support Portal”,然後點擊它。我想如果我可以使用 Inspect 查看 HTML 原始碼,那麼我就可以執行查找並提取該特定的 url。。這就是為什麼我嘗試使用 WinGetText,這樣我就可以提取「MyTech 支援入口網站」url。

下拉範例

這是包含 url 的行的一部分: ,\"Url\":\"https://xxxxx365.sharepoint.com/sites/ServiceManagementSVCDesk\",\"Type\":\"Group\",\"Title\":\"MyTECH Support Portal\",

我遇到的問題是當我執行時:

WebText1 := WinGetText(WebTitle2)

它傳回的不是檢查文字:

WebText1=Chrome 舊版窗口

第 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來測試我的程式碼):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

}

答案1

這是一個適合您的潛在解決方案:

  1. 像現在一樣打開原始碼。
  2. Ctrl+A選擇所有內容:
Send, ^a

如果不選擇,Click首先放在頁面中間以獲得焦點。

  1. 使用Ctrl+複製到剪貼簿C
Send, ^c
  1. 使用Clipboard變數來存取完整值。
  2. 對此進行任何類型的匹配。我推薦簡單的RegExMatch以獲得所需的 URL 格式,而不是您正在嘗試的奇怪的反向內容。與一群人一起捕捉它()。單獨配對https也不是一個好主意,因為我認為這不是頁面上唯一的 URL。

相關內容