私は AutoHotKey を学習しており、これを使用して、実行する必要がある特定のプロセスを自動化できるかどうかを確認しようとしています。これは、MS Edge を使用してブラウザー ウィンドウを開き (動作するようになれば、他のブラウザーを処理するようにコーディングできます)、デフォルトでホーム ページに移動し、Ctrl+を押しUてタブを開いてページの HTML を調べ、 を検索し、( )MyTech Support Portal
を逆方向に検索してURL を抽出します。複数のブラウザー タブを正しく処理しているかどうかはわかりません。:sptth
https:
ホーム Web ページには、「Tech Help」の下にドロップダウンがあり、そこにカーソルを置くとドロップダウンが開き、「MyTech Support Portal」を選択します。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)
Inspect テキストの代わりに次のテキストが返されます:
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++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
考えられる解決策は次のとおりです:
- 今と同じようにソースを開きます。
- Ctrlすべてを選択するには+を押しますA:
Send, ^a
選択しない場合は、Click
最初にページの中央に焦点を置きます。
- Ctrl+でクリップボードにコピーC:
Send, ^c
- 使用
Clipboard
完全な値にアクセスするための変数。 - それを何らかの形でマッチングします。私はシンプルをお勧めします
RegExMatch
奇妙な逆引きではなく、目的の URL 形式を検索してください。グループでキャプチャします()
。https
ページ上の URL がそれだけではないと思うので、単独で一致させることも良い考えではありません。