5

我在 Firefox 中打开了几个选项卡。我希望 AutoIt 激活 Firefox 中的特定选项卡。如何才能做到这一点?

4

6 回答 6

5

有一个名为FF.au3的 UDF(用户定义函数 - 包含文件)。看起来你想要的功能是_FFTabSetSelected(),祝你好运!

下面是 Jeanne Pindar 方法的一个示例。这就是我会做的方式。

#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
于 2010-06-02T04:56:27.760 回答
5

给整个浏览器窗口焦点,然后使用 send 命令重复发送它 cntl-tab 直到窗口的标题是您想要的选项卡的名称(最后带有 - Mozilla Firefox)。

于 2010-06-02T01:44:26.380 回答
4

干得好...

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

只需删除 MsgBox 就可以了!

于 2010-08-14T00:26:29.563 回答
2

正如Copas所说,使用FF.au3。函数_FFTabSetSelected($regex,"label")将选择名称匹配给定的第一个选项卡$regex

于 2010-10-04T10:25:40.200 回答
0

Nop...脚本有问题^^'...无需数到100,并且后面的“发送”有问题:

如果您发送 ctrl + number => 数字不能大于 9... 因为 10 是一个有 2 个字符的数字,Firefox 无法使用快捷方式激活选项卡 10。

顺便说一句,当脚本运行时,有一刻他释放了 ctrl 键.. 它不发送十,但 ctrl 和 1 结束零......然后飞溅!它只是发送窗口中的号码。因此,我们需要向脚本学习,当他第二次返回 $i = 0 或 1 时,所有选项卡都已看到,无需继续,即使未找到您要搜索的文本。所以我根据旧脚本制作了自己的脚本:

##
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
##
于 2014-08-17T00:35:45.197 回答
-4

我已经很多年没有接触过 AutoIt,但 IIRC 将是:

setMousePos(x, y)    // tab position
click("left")
于 2010-06-02T00:41:50.270 回答