Google chrome - 如何激活 google chrome 并切换到特定选项卡 window?

Google chrome - how to activate google chrome and switch to specific tab window?

在 windows 系统上,我有 Python/QT GUI 运行。现在按下按钮,我需要在我的应用程序前面激活最小化或未最小化 google chrome。

如何激活Googlechrome然后通过static title nameprocess id titles(使用Python或其他方式)切换到非常具体的TAB?

(例如激活第二个选项卡)

Python:(不起作用它只是打开它)

import webbrowser
url = 'http://docs.python.org/'
chrome_path = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s'
webbrowser.get(chrome_path).open(url)

Ahk:失败

#d::
list := Acc_Get("Object", "4.23.1", 0, "ahk_class MozillaWindowClass")
;MsgBox % list.accChildCount-1
for each, tab in Acc_Children(list) {
   MsgBox, % tab.accName(0)
   tab.accDoDefaultAction(0)
}
Return


#c::WinActivate( "Calculator", "calc" )

#NoTrayIcon
#SingleInstance force

WinActivate( TheWindowTitle, TheProgramTitle )
{
    SetTitleMatchMode,2
    DetectHiddenWindows, Off

    IfWinExist, %TheWindowTitle%
    {
        WinGet, winid, ID, %TheWindowTitle%
        DllCall("SwitchToThisWindow", "UInt", winid, "UInt", 1)
    }
    Else
    {
        Run %TheProgramTitle%
    }
    Return
}

也试试:

If ChromeHasTabNamed( "Activating Chrome Tab" )
    MsgBox, Yes
Return


ChromeHasTabNamed( X ) {
    SetTitleMatchMode, 2
    WinGetTitle, title, - Chrome
    While Not InStr( list, title "`n" ) {
        list .= title "`n"
        ControlSend,, ^{Tab}, - Chrome
        Sleep, 50
        WinGetTitle, title, - Chrome
    }
    Return, InStr( list, X ) ? True : False
}

尝试直到死亡:

SetTitleMatchMode, 2
WinWaitActive - Google Chrome
ControlFocus, Chrome_RenderWidgetHostHWND1
Loop, 15
{
   WinGetTitle, Title, A  ;get active window title
   if(InStr(Title, "Gmail")>0)
   {
      break ; Terminate the loop
   }
   Send ^{Tab}
   Sleep, 50
}

return

有效。

chrome := "- Google Chrome"
found := "false"
tabSearch := "Gmail"
curWinNum := 0
SetTitleMatchMode, 2
WinGet, numOfChrome, Count, %chrome% ; Get the number of chrome windows
WinActivateBottom, %chrome% ; Activate the least recent window
WinWaitActive %chrome% ; Wait until the window is active
ControlFocus, Chrome_RenderWidgetHostHWND1 ; Set the focus to tab control ???
while (curWinNum < numOfChrome and found = "false") { 
    WinGetTitle, firstTabTitle, A ; The initial tab title
    title := firstTabTitle
    Loop {
        if(InStr(title, tabSearch)>0){
            found := "true"
            break
        }
        Send {Ctrl down}{Tab}{Ctrl up}
        Sleep, 50
        WinGetTitle, title, A  ;get active window title
        if(title = firstTabTitle){
            break
        }
    }
    WinActivateBottom, %chrome%
    curWinNum := curWinNum + 1
}

if(found = "false"){
    Run "https://gmail.com"
}    
return