AutoIt with Firefox

前端 未结 6 1784
臣服心动
臣服心动 2021-02-04 19:58

I have several tabs open in Firefox. I want AutoIt to activate a particular tab in Firefox. How can this be done?

相关标签:
6条回答
  • 2021-02-04 20:21

    As Copas said, use FF.au3. Function _FFTabSetSelected($regex,"label") will select first tab with name matching given $regex.

    0 讨论(0)
  • 2021-02-04 20:23

    I haven't touched AutoIt in years, but IIRC it will be:

    setMousePos(x, y)    // tab position
    click("left")
    
    0 讨论(0)
  • 2021-02-04 20:29

    Give the whole browser window focus, then use the send command to repeatedly send it cntl-tab until the window's title is the name of the tab you want (with - Mozilla Firefox at the end).

    0 讨论(0)
  • 2021-02-04 20:38

    There's a UDF (User Defined Functions -include file) called FF.au3. Looks like the function you want is _FFTabSetSelected(), good luck!

    Below is an example of Jeanne Pindar's method. This is the way I would do it.

    #include <array.au3>
    
    Opt("WinTitleMatchMode", 2)
    
    activateTab("Gmail")
    Func activateTab($targetWindowKeyphrase)
        WinActivate("- Mozilla Firefox")
        For $i = 0 To 100
            If StringInStr(WinGetTitle(WinActive("")),$targetWindowKeyphrase) Then
                MsgBox(0,"Found It", "The tab with the key phrase " & $targetWindowKeyphrase & " is now active.")
                Return
            EndIf
            Send("^{TAB}")
            Sleep(200)
        Next
    EndFunc
    
    0 讨论(0)
  • 2021-02-04 20:42

    Here you go...

    AutoItSetOption("WinTitleMatchMode", 2)
    
    $searchString = "amazon"
    
    WinActivate("Mozilla Firefox")
    For $i = 0 To 100
        Send("^" & $i)
        Sleep(250)
        If Not(StringInStr(WinGetTitle("[ACTIVE]"), $searchString) = 0) Then
            MsgBox(0, "Done", "Found it!")
            ExitLoop
        EndIf
    Next
    

    Just delete the MsgBox and you're all set!

    0 讨论(0)
  • 2021-02-04 20:45

    Nop... The script is buggy ^^'... no need to count to 100, and there is a problem with the "send" after it:

    If you send ctrl + number =>the number can't be bigger than 9... Because ten is a number with 2 caracters, Firefox can't activate tab 10 with shortcut.

    And by the way when the script is working there is a moment he release the ctrl key.. It don't send ten, but ctrl and 1 end zero ... and splash !!! It just send the number in the window. So we need to learn to the script that the second time he's back to $i = 0 or one, all the tabs was seen, no need to continue, even if the text you're searching for was not found. So I made my own script based on the old one:

    ##
    AutoItSetOption("WinTitleMatchMode", 2)
    
    $searchString = "The string you're looking for"
    Local $o = 0
    WinActivate("The Name of the process where you're searching")
    For $i = 0 To 9
       Send("^" & $i)
       Sleep(250)
          if ($i = 9) Then
             $o += 1
          EndIf
          If not (StringInStr(WinGetTitle("[ACTIVE]"), $searchString) = 0) Then
                MsgBox("","","Found it !") ;your action,  the text was found.
                ExitLoop
          ElseIf ($o = 1) Then
                MsgBox("","","All tab seen, not found...") ;your action, the text was not found, even after looking all title.
                ExitLoop
          EndIf
       Next
    ##
    
    0 讨论(0)
提交回复
热议问题