我在 Firefox 中打开了几个选项卡。我希望 AutoIt 激活 Firefox 中的特定选项卡。如何才能做到这一点?
6 回答
有一个名为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
给整个浏览器窗口焦点,然后使用 send 命令重复发送它 cntl-tab 直到窗口的标题是您想要的选项卡的名称(最后带有 - Mozilla Firefox)。
干得好...
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 就可以了!
正如Copas所说,使用FF.au3。函数_FFTabSetSelected($regex,"label")
将选择名称匹配给定的第一个选项卡$regex
。
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
##
我已经很多年没有接触过 AutoIt,但 IIRC 将是:
setMousePos(x, y) // tab position
click("left")