AutoIt с Firefox - PullRequest
       49

AutoIt с Firefox

5 голосов
/ 02 июня 2010

У меня есть несколько вкладок, открытых в Firefox. Я хочу, чтобы AutoIt активировал определенную вкладку в Firefox. Как это можно сделать?

Ответы [ 6 ]

5 голосов
/ 02 июня 2010

Существует UDF (файл, определяемый пользователем, включающий функции), который называется FF.au3 . Похоже, вам нужна функция _FFTabSetSelected(), удачи!

Ниже приведен пример метода Жанны Пиндар. Я бы так и сделал.

#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
5 голосов
/ 02 июня 2010

Дайте фокус всему окну браузера, затем используйте команду send, чтобы повторно отправить его cntl-tab, пока заголовок окна не станет названием нужной вкладки (с - Mozilla Firefox в конце).

4 голосов
/ 14 августа 2010

Вот, пожалуйста ...

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 и все готово!

2 голосов
/ 04 октября 2010

Как сказал Копас, используйте FF.au3. Функция _FFTabSetSelected($regex,"label") выберет первую вкладку с указанным именем $regex.

0 голосов
/ 17 августа 2014

Нет ... Скрипт глючит ^^ '... не нужно считать до 100, и после него возникает проблема с «send»:

Если вы отправите Ctrl + номер => число не может быть больше 9 ... Поскольку десять - это число с 2 символами, Firefox не может активировать вкладку 10 с помощью ярлыка.

И, между прочим, когда сценарий работает, есть момент, когда он отпускает клавишу ctrl. Он посылает не десять, а ctrl и 1 заканчиваются нулем ... и всплеском !!! Это просто отправить номер в окне. Таким образом, нам нужно узнать в сценарии, что во второй раз, когда он возвращается к $ i = 0 или единице, все вкладки были просмотрены, не нужно продолжать, даже если искомый текст не был найден. Поэтому я сделал свой собственный скрипт на основе старого:

##
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 голосов
/ 02 июня 2010

Я не касался AutoIt годами, но IIRC будет:

setMousePos(x, y)    // tab position
click("left")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...