Что нового

Библиотека для работы с FireFox

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
AutoIt: 3.2.1.2 - 3.3.0.0
Версия: 0.6.0.0b
Категория:
Название: UDF Firefox
Описание: Управление Firefox
;_FFAction
;_FFClick
;_FFCmd
;_FFConnect
;_FFDialogWait
;_FFDisConnect
;_FFDispatchEvent
;_FFFormCheckBox
;_FFFormGetElementsLength
;_FFFormOptionselect
;_FFFormRadioButton
;_FFFormReset
;_FFFormSubmit
;_FFFrameEnter
;_FFFrameLeave
;_FFGetLength
;_FFGetObjectInfo
;_FFGetPosition
;_FFGetValue
;_FFImageClick
;_FFImageGetBySize
;_FFImageMapClick
;_FFIsConnected
;_FFLinkClick
;_FFLinksGetAll
;_FFLoadWait
;_FFLoadWaitTimeOut
;_FFObj
;_FFObjDelete
;_FFObjGet
;_FFObjNew
;_FFOpenURL
;_FFPrefGet
;_FFPrefReset
;_FFPrefSet
;_FFQuit
;_FFReadHTML
;_FFReadText
;_FFSearch
;_FFSetValue
;_FFStart
;_FFTabAdd
;_FFTabClose
;_FFTabDuplicate
;_FFTabExists
;_FFTabGetSelected
;_FFTabSetSelected
;_FFTableWriteToArray
;_FFWindowClose
;_FFWindowGetHandle
;_FFWindowOpen
;_FFWindowSelect
;_FFWriteHTML
;_FFXPath

Изменения в версии 0.6.0.0b:
- Добавлено: _FFWindowOpen: новый параметр: $bLoadWait
- Добавлено: _FFAu3Option / $_FF_SEARCH_MODE = 0 ; 0 = Подстрока / 1 = Сравнить
_FFImageClick
- Удалено: _FFSetValueById, _FFSetValueByName ==> _FFSetValue
- Удалено: _FFGetValueById, _FFGetValueByName ==> _FFGetValue
- Удалено: _FFFormGetLength ==> _FFGetLength
- Удалено: _FFTabGetLength ==> _FFGetLength
- Удалено: _FFTableGetCell ==> _FFXpath
- Удалено: _FFDisPatchKeyEvent ==> _FFDisPatchEvent
- Удалено: _FFTabCloseAll ==> _FFTabClose
- Удалено: _FFFormGetElementsLength: now only returns the DOM-standard length
- Удалено: _FFRecord* functions and all additions for them in all functions
- Изменено: _FFAction("copy"): работает только в текущем окне
- Поправлено: _FFFormGetElementsLength: Сообщение с ошибкой
- Поправлено: _FFDispatchEvent: Ярлыки для элементов

Требования:
Последняя версия FireFox (Flock) и Аддон MozRepl
- _MozRepl_Detect (Проверяет профиль Firefox на наличие аддона MozRepl и если он отсутствует - устанавливает его)
Не забудьте запустить MozRepl!!!
Документация:
Русский язык
Источник: Stilgar


Дополнительно:
Installation MozRepl:Wiki
Extensions MozRepl: xpi, addons.mozilla.org
FF.au3 (V0.6.0.1b-10)
FF.au3 (V0.6.0.2b)
 
  • Like
Реакции: orin

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Medic84 сказал(а):
- _MozRepl_Detect (Проверяет профиль Firefox на наличие аддона MozRepl и если он отсутствует - устанавливает его)
Не забудьте запустить MozRepl!!!

Позволю себе дополнить тему самими _MozRepl_Detect и MozRepl.xpi ;)
Код:
;===============================================================================
#cs
    AutoIt Version: 3.2.12.1
    Author: Thunder-man (Frank Michalski)

    Script Function:  _MozRepl_Detect()
    Description:      Checks a Firefox profile for the MozRepl extension and installes it if not available.
    default:          $sProfile = "default"
    Return values:    True or False
    V 1.0 ==> 15.09.2007
    V 1.1 ==> 02.08.2008, updated by Stilgar (Thorsten Willert)
    changed the path-macro to @AppDataDir
    changed the ""-profil to "default"
    V1.2 ==> 03.03.2009, updated by Stilgar (Thorsten Willert)
    changed MozLab to MozRepl
    V2.0 ==> 17.03.2009, added intall-option for MozRepl by Stilgar (Thorsten Willert)

#ce
;===============================================================================

;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True , $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")

    If $sProfile = "" Then $sProfile = "default"

    Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox\"

    Local $var = IniReadSectionNames($sIni_Path & "\profiles.ini")
    If @error Then
        MsgBox(4096, "", "Error occurred, probably no Firefox INI file.")
    Else
        For $i = 1 To $var[0]
            Local $Ini_ = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Name", "Error")
            If $Ini_ = $sProfile Then
                Local $sPath_folder = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Path", "Eror") ;Profil Ordner
                ExitLoop
            EndIf
        Next
    EndIf

    If $bInstall Then
        Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
        Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
        Local $sCommand = StringFormat('"%s" "%s"',$sFFExe, $sXPI)
    EndIf

    If StringLeft($sPath_folder, 8) = "Profiles" Then
        If FileExists($sIni_Path & $sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    Else
        If FileExists($sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    EndIf
EndFunc   ;==>_MozRepl_Detect
 

Waik

Знающий
Сообщения
60
Репутация
16
Библиотека отличная!
Вот еще библиотека для логина на сайтах.Использует FF.au3

http://www.thorsten-willert.de/Themen/FFau3/Beispiele/FF_AutoLogin.au3?a
 

serg-pl-1

Новичок
Сообщения
14
Репутация
1
У меня не получается подключиться к Firefox 3.6, AutoIt v3.3.4.0
FF.au3 лежат в одной дирекории со скрипом.

Код:
#Include <FF.au3>
; выкидывает постоянно "Can't connect to FireFox"

; trying to connect to a running FireFox with MozRepl on
If _FFConnect(Default, Default, 3000) Then
	; open a page
	_FFOpenURL("http://ff-au3-example.thorsten-willert.de/")
	Sleep(3000)
	; disconnect from FireFox
	If _FFDisConnect() Then MsgBox(64, "", "Disconnected from FireFox!")
Else
	MsgBox(64, "", "Can't connect to FireFox!")
EndIf
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
serg-pl-1 [?]
У меня не получается подключиться к Firefox 3.6, AutoIt v3.3.4.0FF.au3 лежат в одной дирекории со скрипом.
А mozrepl установил на FF?

http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi
 

Minek

Новичок
Сообщения
10
Репутация
0
Возможно что mozrepl не работает с FF 3.6
Попробуй FF 3.5.8 - на нем точно работает
Кроме того mozrepl нужно запустить - инструменты - mozrepl - start
 

serg-pl-1

Новичок
Сообщения
14
Репутация
1
Minek сказал(а):
Возможно что mozrepl не работает с FF 3.6
Попробуй FF 3.5.8 - на нем точно работает
Кроме того mozrepl нужно запустить - инструменты - mozrepl - start

FF 3.5.8 Да с ним пошёл! СпасибО!
 

ZloiKotFAQ

Новичок
Сообщения
2
Репутация
0
сделал ВСЁ как написано, четырежды перечитал, библиотеку кинул в include плагин в фоксе поставил и ВКЛЮЧИЛ, (я только учусь и новичёк, поэтому может у меня КОД КРИВОЙ??????)
ConsoleWrite создал для проверки
внизу часть кода,

Код:
#include <FF.au3>
  #region РАБОТА ПРОГРАММЫ
ConsoleWrite('создаем массив'&@CRLF)
   Input()                                                      ; эта функция работает
     ConsoleWrite('фаер фокс'&@CRLF)
       _FFStart('www.mail.ru')
 ;      _FFConnect("127.0.0.1", 4242, 6000)      - а может это надо включить??
           ConsoleWrite('проверка'&@CRLF)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
а между тем фф уже версии 5. и дальше версии будут уже целые.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
MozRepl.xpi не работает с firefox 11.0 :(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
C2H5OH [?]
MozRepl.xpi не работает с firefox 11.0
это легко поправляется. надо сохранить xpi. это по сути обычный zip архив. вытащить оттуда rdf файл, открыть, найти там где максимальная версия, изменить на нужную, или вообще везде звездочки поставить и засунуть обратно в архив. я так кучу якобы несовместимых плагинов ставил на лису
 

syavak

Новичок
Сообщения
12
Репутация
1
помогите народ
нужно получить соурс страницы на русском
но получаю чтото типа
06<8B5 =0 ?5@A>=060 GB>1K C40;8BL 53
ктонибуть сталкивался ?
посоветуйте чтонибуть или если есть готовое решение то ткните меня в него
 

polozmukuch

Новичок
Сообщения
1
Репутация
2
Почему при запуске _FFStart открываются сразу 2 браузера FF?
В первом в адресной строке вбито http://4242/ Во втором - сайт который требуется открыть.
Как избавиться от открывания лишнего браузера FF c http://4242/?
 

spy686

Новичок
Сообщения
12
Репутация
0
пользовался iMacros, по некоторым причинам решил перейти на AutoIt. Но никак не разберусь что с ним делать та надо.
Скачал AutoIt, AutoIt Menu.
Установи AutoIt v3.3.8.1, AutoIt Menu 1.3.1.
запустил как-то
Код:
;===============================================================================
#cs
    AutoIt Version: 3.2.12.1
    Author: Thunder-man (Frank Michalski)

    Script Function:  _MozRepl_Detect()
    Description:      Checks a Firefox profile for the MozRepl extension and installes it if not available.
    default:          $sProfile = "default"
    Return values:    True or False
    V 1.0 ==> 15.09.2007
    V 1.1 ==> 02.08.2008, updated by Stilgar (Thorsten Willert)
    changed the path-macro to @AppDataDir
    changed the ""-profil to "default"
    V1.2 ==> 03.03.2009, updated by Stilgar (Thorsten Willert)
    changed MozLab to MozRepl
    V2.0 ==> 17.03.2009, added intall-option for MozRepl by Stilgar (Thorsten Willert)

#ce
;===============================================================================

;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True , $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")

    If $sProfile = "" Then $sProfile = "default"

    Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox\"

    Local $var = IniReadSectionNames($sIni_Path & "\profiles.ini")
    If @error Then
        MsgBox(4096, "", "Error occurred, probably no Firefox INI file.")
    Else
        For $i = 1 To $var[0]
            Local $Ini_ = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Name", "Error")
            If $Ini_ = $sProfile Then
                Local $sPath_folder = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Path", "Eror") ;Profil Ordner
                ExitLoop
            EndIf
        Next
    EndIf

    If $bInstall Then
        Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
        Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
        Local $sCommand = StringFormat('"%s" "%s"',$sFFExe, $sXPI)
    EndIf

    If StringLeft($sPath_folder, 8) = "Profiles" Then
        If FileExists($sIni_Path & $sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    Else
        If FileExists($sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    EndIf
EndFunc   ;==>_MozRepl_Detect


перешол на страницу https://github.com/bard и все?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
spy686 [?]
перешол на страницу https://github.com/bard и все?
Не знаю кто писал функцию, но там много ошибок, вот исправленная версия:

Код:
;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True, $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")
	Local $sProfile_Path, $sFFExe, $sCommand
	Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
	
	If $sProfile = "" Then
		$sProfile = "default"
	EndIf
	
	Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox"
	Local $aSectNames = IniReadSectionNames($sIni_Path & "\profiles.ini")
	
	If @error Then
		Return SetError(-1, 0, "Error occurred, probably no Firefox INI file.")
	EndIf
	
	For $i = 1 To $aSectNames[0]
		If IniRead($sIni_Path & "\profiles.ini", $aSectNames[$i], "Name", "") = $sProfile Then
			$sProfile_Path = StringReplace(IniRead($sIni_Path & "\profiles.ini", $aSectNames[$i], "Path", "Eror"), "/", "\")
			If Not StringInStr($sProfile_Path, ":\") Then $sProfile_Path = $sIni_Path & "\" & $sProfile_Path
			
			ExitLoop
		EndIf
	Next
	
	If FileExists($sProfile_Path & "\extensions\[email protected]") Then
		Return 1
	EndIf
	
	If $bInstall Then
		$sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
		$sCommand = StringFormat('"%s" "%s"', $sFFExe, $sXPI)
		Return Run($sCommand)
	EndIf
	
	Return 0
EndFunc ;==>_MozRepl_Detect
 
Верх